#CRT0003. 小P动点

小P动点

题目背景

勤奋的 Papyrus 发明了一种动点问题, sans 称之为小P动点。

题目描述

在平面直角坐标系中,考虑一条形如 $y = kx + b$ 的直线,其中斜率 $k$ 和截距 $b$ 是给定的整数参数。假设直线上有一个动点 $P(x_0, y_0)$ 在第一象限内滑动,目标是找出以 $P$ 点和原点 $(0,0)$ 作为对角顶点的矩形中,面积能达到的最大值。

image

输入格式

每组测试用例由两行组成,第一行为测试用例的数量 $T$;随后的每一行对应一个测试用例,包含两个整数 $k$ 和 $b$,表示直线的方程为 $y = kx + b$。

输出格式

对于每个测试用例,输出一个浮点数,表示满足条件的矩形所能达到的最大面积。如果该面积理论上可以无限大,则输出 $-1$。答案的精度需控制在绝对误差或相对误差不超过 $10^{-4}$ 的范围内。

样例输入#1

3
-3 5
-2 7
0 10

样例输出#1

2.0833
6.1250
-1

样例解释

  1. 第一个测试用例中,通过选取接近 $x \approx 0.833$ 的点(具体计算基于使矩形面积最大化的原理),对应的 $y$ 值约为 $2.501$,从而得到的矩形面积约为 $2.0833$,这是最大可能面积。
  2. 第二个测试用例类似地找到合适的 $x$ 值(例如 $x = 1.75$),得到矩形面积为 $6.125$。
  3. 第三个测试用例中,由于直线平行于 $y$ 轴($k=0$),只要 $x>0$,$y$ 的值将保持为常数 $10$,导致矩形的一边可以无限延伸,因此面积为无穷大,故输出 $-1$。

数据范围与约定

1T105 1 \le T \le 10^5

1bi109 1 \le b_i \le 10^9

109ki109 -10^9 \le k_i \le 10^9

所有输入数据确保为整数。