zoukankan      html  css  js  c++  java
  • CF div2 320 C

    C. A Problem about Polyline
    time limit per test
    1 second
    memory limit per test
    256 megabytes
    input
    standard input
    output
    standard output

    There is a polyline going through points (0, 0) – (x, x) – (2x, 0) – (3x, x) – (4x, 0) – ... - (2kx, 0) – (2kx + x, x) – ....

    We know that the polyline passes through the point (a, b). Find minimum positive value x such that it is true or determine that there is no such x.

    Input

    Only one line containing two positive integers a and b (1 ≤ a, b ≤ 109).

    Output

    Output the only line containing the answer. Your answer will be considered correct if its relative or absolute error doesn't exceed 10 - 9. If there is no such x then output  - 1 as the answer.

    Sample test(s)
    input
    3 1
    output
    1.000000000000
    input
    1 3
    output
    -1
    input
    4 1
    output
    1.250000000000
    Note

    You can see following graphs for sample 1 and sample 3.

    挺有意思的,在纸上推一遍就可以了,对于每个点(a,b),显然如果b>a则无解,然后就是有解的情况,分两种情况,一种是点(a,b)在斜率为1的线上
    那么这个线段过(a-b,0)这个点,同理如果在斜率为-1的线上,那么这个线段过(a+b,0)这个点。然后开始各种推。
     1 #include <cstdio>
     2 #include <cstring>
     3 
     4 using namespace std;
     5 
     6 const int M = 10005;
     7 
     8 int main()
     9 {
    10     long long a,b;
    11     scanf("%lld%lld",&a,&b);
    12     if(a<b) puts("-1");
    13     else printf("%.12f
    ",(a+b)/(2.0*((a+b)/(2*b))));
    14 
    15 
    16     return 0
  • 相关阅读:
    RSA加密
    各种正则
    用Fragment制作的Tab页面产生的UI重叠问题
    Android源码下载
    Android Studio使用百度地图问题总结
    Android获取网络类型
    Android Studio类中实现Serializable自动生成serialVersionUID
    【Android开发】如何设计开发一款Android App
    UIViewController生命周期
    微信支付开发经验分享
  • 原文地址:https://www.cnblogs.com/lmlyzxiao/p/4818003.html
Copyright © 2011-2022 走看看