1739 气球聚会
Submit solution
Points:
100
Time limit:
2.0s
Memory limit:
64K
Problem types
Allowed languages
C, C++, Java, Python
Description
不知是从哪里来的消息,听说 ACM 集训队要组织一场气球聚会。届时,会场会有 n 个气球。我们假定所有的气球都是圆的,它们将排成一排,放在同一桌面上。
聚会刚开始的时候,气球都没有充气,此时,我们认为,它们的半径为零。不过很快它们会被从左至右依次充气。当第 i 个气球慢慢变大的时候,它始终与桌面相切,且切点横坐标始终为 xi 。但是气球不能吹得无限大,每个气球有一个半径上限 ri ,当气球碰到其他气球的时候,或者达到半径上限的时候,就应该停止充气。
那么,你的任务就是:计算出充完气后,每个气球的半径。
交这题的同学尽量使用 VC 编译器,否则可能由于编译器差异会得到 Wrong Answer 。
Input
输入的第一行包含一个整数 c ,表示测试数据的组数。 每组数据的第一行包含一个整数 n (1 <= n <= 1000)。 接下来 n 行,第 i 行包含两个整数:xi,ri(0 <= xi <= 100000, 1 <= ri <= 100000)。
Output
每组数据输出 n 行,第 i 行表示第 i 个气球的半径,保留 3 位小数。在每组数据后输出一个空行。
Sample
Input
2
1
0 9
3
0 9
8 1
13 7
Output
9.000
9.000
1.000
4.694
Hint
图中显示的是第二组样例数据的情况。
Source: ycc
Comments