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
  • 相关阅读:
    python 使用else代替状态变量
    python 实现线程安全的单例模式
    sql语句的执行顺序
    python 实现int函数
    python实现时间o(1)的最小栈
    python实现简单的负载均衡
    python实现求最长回文子串长度
    python lambda表达式
    sql针对某一字段去重,并且保留其他字段
    基本认识
  • 原文地址:https://www.cnblogs.com/lmlyzxiao/p/4818003.html
Copyright © 2011-2022 走看看