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

首页