1. 圆和两个坐标轴都相切。
2. 圆经过点
显然,一共有两个合法的解。你需要从小到大输出这两个解的圆的半径。
两个正整数,代表点
的坐标。
从小到大输出两个浮点数,分别代表两个解的圆的半径。如果你的答案和标准答案的误差不超过,则认为你的答案正确。
1 2
1.0000 5.0000
如下图,蓝色的为合法的两个圆。
import sys def search(x, y): low = 0 high = max(x, y) last = 0 current = 1 while high - low > 1e-7: mid = (high + low) / 2.0 if (x - mid) * (x - mid) + (y - mid) * (y - mid) > mid * mid: low = mid else: high = mid ans1 = low low = max(x, y) + 1e-8 high = max(x, y) * 10 #可以取更精确的上界倍数,10可以pass last = 0 current = 1 while high - low > 1e-7: mid = (high + low) / 2.0 if (x - mid) * (x - mid) + (y - mid) * (y - mid) > mid * mid: high = mid else: low = mid ans2 = low print(ans1, ans2) for line in sys.stdin: a = line.split() search(int(a[0]),int(a[1]))