单点时限: 2.0 sec
内存限制: 256 MB
在平面上,确定一个点的位置通常有下面两种表示方法:
当极坐标系中的极点 $O$ 与直角坐标系中的原点 $O$ 重合,极轴 $OX$ 与直角坐标系中的 $X$ 轴的正半轴重合,并且两种坐标系的单位长度相同,那么平面内任意一点 $P$ 的直角坐标与极坐标可以互相转换。
例如:
点 p 直角坐标为:$(1,1$),则对应的极坐标为:$(1.4142, \frac{ \pi }{4})$。
点 p 直角坐标为:$(-1,1$),则对应的极坐标为:$(1.4142, \frac{3 \pi }{4})$。
点 p 直角坐标为:$(-1,-1$),则对应的极坐标为:$(1.4142, \frac{5 \pi }{4})$。
点 p 直角坐标为:$(1,-1$),则对应的极坐标为:$(1.4142, \frac{ 7\pi }{4})$。
点 p 直角坐标为:$(0,1$),则对应的极坐标为:$(1, \frac{ \pi }{2})$。
点 p 直角坐标为:$(1,0$),则对应的极坐标为:$(1,0)$。
给出 $N$ 个点的直角坐标 $(x,y)$,请计算出这些点对应的极坐标,将这 $N$ 个点按照极角 $\theta$ 从小到大排序,如果两个点的极角相同,则将它们按照极径 $\rho$ 由大到小排序。
注意:$\rho≥0$,极角 $0≤ \theta <2 \pi$
第 $1$ 行:整数 $T$ ($1 \le T \le 10$) 为问题数。
对于每个问题,按如下格式输入:
第 $1$ 行:输入一个正整数 $N(1≤N≤1000)$,表示点的个数;
接下来 $N$ 行,每行输入两个浮点数 $x,y$,表示点的直角坐标,两个数之间由一个空格分隔。
对于每个问题,输出一行问题的编号($0$ 开始编号,格式:case #0:
等)。
接下来 $N $行输出排序后的点的极坐标($\rho , \theta$),每行输出一个点的极坐标,小数点后保留 $4$ 位,极角采用弧度表示。
3 5 1.0 1.0 2.0 2.0 -1.0 1.0 0 1.0 1.0 0 1 0 -1.0 6 1.0 1.0 0 1.0 1.0 0 -1.0 1.0 -1.0 -1.0 1.0 -1.0
case #0: (1.0000,0.0000) (2.8284,0.7854) (1.4142,0.7854) (1.0000,1.5708) (1.4142,2.3562) case #1: (1.0000,4.7124) case #2: (1.0000,0.0000) (1.4142,0.7854) (1.0000,1.5708) (1.4142,2.3562) (1.4142,3.9270) (1.4142,5.4978)