#icpc2014autumne. [icpc2014autumn_e]Square in Circles

[icpc2014autumn_e]Square in Circles

问题描述

Circles Island以其神秘的形状而闻名:它是一个完全平坦的岛屿,其形状是圆的并集,这些圆的圆心在xx轴上,内部区域也包括在内。

Circles Island的国王计划在Circles Island上建造一个大广场,以庆祝他登位50周年纪念日。国王希望尽可能地扩大广场的面积。整个广场的面积必须位于Circles Island的表面,但可以使用Circles Island的任何区域。国王还要求广场的形状为正方形(当然!),且至少有一边与xx轴平行。

作为Circles Island的大臣,您现在被命令建造广场。首先,国王想要知道广场的最大可能尺寸。给定构成Circles Island的圆的位置和半径,请回答最大可能正方形的边长。

输入数据中给出了NN个圆,按照它们的圆心xx坐标的升序排列。您可以假设对于所有ii1iN11 \le i \le N-1),第ii个和(i+1)(i+1)个圆相互重叠。您还可以假设没有圆完全重叠。

图1:Circles Island的形状和样本输入示例的可能最大正方形之一


输入

输入包含多个数据集。数据集的数量不超过30个。每个数据集的格式如下所示。

NN
X1X_1 R1R_1
:
:
XNX_N RNR_N

数据集的第一行包含一个整数NN1N50,0001 \le N \le 50,000),表示构成Circles Island的圆的数量。接下来的NN行描述了一个圆。(i+1)(i+1)行包含两个整数XiX_i100,000Xi100,000-100,000 \le X_i \le 100,000)和RiR_i1Ri100,0001 \le R_i \le 100,000)。XiX_i表示第ii个圆的中心的xx坐标,RiR_i表示第ii个圆的半径。每个圆的yy坐标为0,即第ii个圆的中心位于(XiX_i, 00)。

您可以假设以下条件成立。

  • 对于所有ii1iN11 \le i \le N-1),XiX_i严格小于Xi+1X_{i+1}
  • 对于所有ii1iN11 \le i \le N-1),第ii个圆和第(i+1)(i+1)个圆至少有一个公共点(Xi+1XiRi+Ri+1X_{i+1} - X_i \le R_i + R_{i+1})。
  • 每个圆至少有一个点不在其他圆的内部或边界上。

输入的结束由包含零的一行表示。

输出

对于每个数据集,输出一行,其中包含面积最大的正方形的边长。输出的绝对误差或相对误差不超过10410^{-4}


样例输入

2
0 8
10 8
2
0 7
10 7
0```

### 样例输入对应的输出

```plain
12.489995996796796
9.899494936611665```

---

### 数据来源

JAG Practice Contest for ACM-ICPC Asia Regional 2014