U34326.复数
普及-
通过率:0%
时间限制:0.40s
内存限制:11MB ~ 12MB
题目描述
给定 n 个复数,每个复数由实部和虚部表示,且实部和虚部均为整数。对于每一个复数,计算其辐角(辐角范围限定在 (-π, π]),然后将这 n 个复数按照辐角从小到大的顺序进行排序。如果两个复数的辐角相等,则按照它们在输入中的顺序进行排序。最后输出排序后的复数序列以及对应的辐角序列(辐角保留 6 位小数)。辐角计算方法:对于复数 (z = a + bi)(其中 a 为实部,b 为虚部),其辐角通过以下公式计算:当 a 大于 0 时,辐角等于 arctan (b 除以 a)
当 a 小于 0 且 b 大于等于 0 时,辐角等于 arctan (b 除以 a) 加上 pi
当 a 小于 0 且 b 小于 0 时,辐角等于 arctan (b 除以 a) 减去 pi
当 a 等于 0 且 b 大于 0 时,辐角等于 pi 除以 2
当 a 等于 0 且 b 小于 0 时,辐角等于负的 pi 除以 2
当 a 等于 0 且 b 等于 0 时,辐角定义为 0
其中,arctan 表示反正切函数,pi 表示圆周率,辐角的结果范围限定在 (-pi, pi]。
输入格式
第一行包含一个整数 n(1 <= n <= 100000),表示复数的个数。
接下来 n 行,每行包含两个整数 a 和 b,分别表示一个复数的实部和虚部(-10000 <= a, b <= 10000)。
输出格式
输出 n 行,每行包含一个复数(以 a + bi 的形式输出)及其辐角(以弧度为单位,保留 6 位小数),按照辐角从小到大排序后的顺序输出。
输入输出样例
输入#1
3 1 1 -1 1 0 -1
输出#1
0 - 1i -1.570796 1 + 1i 0.785398 -1 + 1i 2.356194
说明/提示
如出现错误输出nan