#P07019. 有理数坐标点排序3
有理数坐标点排序3
题目描述
平面直角坐标系中有 个坐标点(都不是原点),设第 个点与原点连线线段为 , 与 正半轴
的夹角为 (注意这里的夹角指的是 正半轴
沿 逆时针
方向旋转到与 重合过程中经过的角度),按照这个夹角大小对所有坐标点升序排序。对于夹角相同的坐标,按照与原点距离升序排序,如果还存在夹角相同且与原点距离相等的坐标点,要求排序后这些坐标保持最初的相对顺序。需要注意的是,提供的每个坐标点的 和 坐标都是整数分数形式的有理数。
特别提示
注意浮点数运算精度问题,尽量避免浮点数运算。
问题涉及到数学中的 正切
知识,可以简单参考下图第一、第四象限的情况,其他情况请自行分析:
输入格式
第 行是一个正整数 。
紧接着有 行,每行是 个整数 ,对应的 就是一个有理数坐标点()。
输出格式
有 行,就是排序后的结果,每行一个坐标点,按照 (a/b,c/d)
的形式输出。
输入输出样例
13
6 3 -4 2
1 1 2 -2
-1 1 -2 2
3 3 -1 5
2 1 4 -2
2 2 1 1
-1 -1 -2 2
2 -4 -4 -2
0 10 -5 -2
-4 -8 0 2
0 -4 2 -5
8 -2 0 -4
2 2 -2 4
(-4/-8,0/2)
(2/2,1/1)
(0/10,-5/-2)
(2/-4,-4/-2)
(8/-2,0/-4)
(-1/1,-2/2)
(0/-4,2/-5)
(1/1,2/-2)
(-1/-1,-2/2)
(6/3,-4/2)
(2/1,4/-2)
(2/2,-2/4)
(3/3,-1/5)
说明/提示
👀️ 对于 的数据,,不存在原点坐标。