程序设计能力实训

1038. 极坐标排序

单点时限: 2.0 sec

内存限制: 256 MB

在平面上,确定一个点的位置通常有下面两种表示方法:

当极坐标系中的极点 与直角坐标系中的原点 重合,极轴 与直角坐标系中的 轴的正半轴重合,并且两种坐标系的单位长度相同,那么平面内任意一点 的直角坐标与极坐标可以互相转换。

例如:

点 p 直角坐标为:),则对应的极坐标为:

点 p 直角坐标为:),则对应的极坐标为:

点 p 直角坐标为:),则对应的极坐标为:

点 p 直角坐标为:),则对应的极坐标为:

点 p 直角坐标为:),则对应的极坐标为:

点 p 直角坐标为:),则对应的极坐标为:

给出 个点的直角坐标 ,请计算出这些点对应的极坐标,将这 个点按照极角 从小到大排序,如果两个点的极角相同,则将它们按照极径 由大到小排序。

注意:,极角

输入格式

行:整数 () 为问题数。

对于每个问题,按如下格式输入:

行:输入一个正整数 ,表示点的个数;

接下来 行,每行输入两个浮点数 ,表示点的直角坐标,两个数之间由一个空格分隔。

输出格式

对于每个问题,输出一行问题的编号( 开始编号,格式:case #0: 等)。

接下来 行输出排序后的点的极坐标(),每行输出一个点的极坐标,小数点后保留 位,极角采用弧度表示。

样例

Input
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
Output
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)
不限期开放

题目列表