#P07019. 有理数坐标点排序3

有理数坐标点排序3

题目描述

平面直角坐标系中有 nn 个坐标点(都不是原点),设第 ii 个点与原点连线线段为 lil_ilil_ixx 正半轴 的夹角为 αi\alpha_i (注意这里的夹角指的是 xx 正半轴 沿 逆时针 方向旋转到与 lil_i 重合过程中经过的角度),按照这个夹角大小对所有坐标点升序排序。对于夹角相同的坐标,按照与原点距离升序排序,如果还存在夹角相同且与原点距离相等的坐标点,要求排序后这些坐标保持最初的相对顺序。需要注意的是,提供的每个坐标点的 xxyy 坐标都是整数分数形式的有理数。

特别提示 注意浮点数运算精度问题,尽量避免浮点数运算。

问题涉及到数学中的 正切 知识,可以简单参考下图第一、第四象限的情况,其他情况请自行分析:


输入格式

11 行是一个正整数 nn

紧接着有 nn 行,每行是 44 个整数 a,b,c,da,b,c,d,对应的 (ab,cd)(\frac{a}{b},\frac{c}{d}) 就是一个有理数坐标点(b0,d0b \neq 0,d \neq 0)。

输出格式

nn 行,就是排序后的结果,每行一个坐标点,按照 (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)

说明/提示

👀️ 对于100%100\% 的数据,n10000,100a,b,c,d100,b,d0n \leq 10000,-100 \leq a,b,c,d \leq 100,b,d \neq 0,不存在原点坐标。