#4995. 平面几何(geometry)

平面几何(geometry)

题面描述

小 D 在最近在学习平面函数的相关知识,今天,他遇到了这样的一道题:

  • 给定一个二次函数图像 y=ax2+bx+c(a0)y=ax^2+bx+c(a\ne0),和一次函数的图像 Ax+By+C=0Ax+By+C=0,你需要求出二次函数图像上的点 (x,y)(x,y) 到一次函数图像的最近距离 dd 是多少?并且求出到一次函数图像的距离是 dd所有点

小 D 做这种类型的题已经很多了,但奈何作业太多,只能写一个程序来帮他完成大量的作业,你能帮帮他吗?

这里提供一种解决办法:

  • 若二次函数图像与一次函数图像有交点,即方程 {y=ax2+bx+cAx+By+C=0\begin{cases}y=ax^2+bx+c\\Ax+By+C=0\end{cases} 有实数解,则 d=0d=0,所求的点即为方程的根。

  • 否则设函数上的一点 (x,y)(x,y),该点到直线的距离就是 D=Ax+By+CA2+B2D=\frac{|Ax+By+C|}{\sqrt{A^2+B^2}}

    然后根据二次函数的性质,求出距离的最小值就可以了。

输入格式

输入的第一行包含一个正整数 TT,表示问题的数量。

接下来 TT 行,每行包含六个整数 a,b,c,A,B,Ca,b,c,A,B,C

输出格式

输出 TT 行,每行先输出一个小数表示最短距离 dd保留 66 位小数。然后输出若干字符串 (x,y)(x,y),表示二次函数图像上到一次函数图像的距离是 dd所有点坐标保留 66 位小数

若有多个点到一次函数图像的距离是 dd ,则按 xx 从大到小输出。

4
3 1 2 7 1 -14
3 1 2 7 0 -14
3 1 2 -4 2 9
3 1 2 0 9 9
0.000000 (1.070368,6.507427) (-3.737034,40.159239)
0.000000 (2.000000,16.000000)
2.869621 (0.166667,2.250000)
2.916667 (-0.166667,1.916667)

样例2

geometry1.in
geometry1.out

数据范围

对于所有数据 T5000,1000a,b,c,A,B,C1000T\le 5000,-1000\le a,b,c,A,B,C\le 1000 ,保证 a0,A,Ba\ne0,A,B 不同时为 00

测试点 a,b,ca,b,c 范围 A,B,CA,B,C 范围 特殊性质
121\sim 2 a=1,b=c=0a=1,b=c=0 A=0A=0
343\sim 4 无限制 B0B\ne 0 A\text{A}
565\sim 6
787\sim 8 无限制 A\text{A}
9109\sim 10

A:\text{A}: 保证二次函数与一次函数一定有交点。