【题目描述】
给定 N 个二维平面上的点 (x0,y0),(x1,y1),…,(xN−1,yN−1),请按 atan2(x,y) 对它们排序。
也就是说,按从半直线 x≤0, y=0 开始的逆时针顺序排列这些点。
注意:
- atan2(x<0,y=0)=π。
- atan2(0,0)=0。
- 极角相同的点可以按任意顺序排列。
- 64 位浮点类型(C++:double)的精度可能不够。请使用整数类型或 80 位浮点类型(C++:long double)。
【输入】
文本
$N$
$x_0$ $y_0$
$x_1$ $y_1$
:
$x_{N - 1}$ $y_{N - 1}$
【输出】
文本
$x_0$ $y_0$
$x_1$ $y_1$
:
$x_{N - 1}$ $y_{N - 1}$
【输入样例】
文本
8
1 0
0 0
-1 0
0 1
0 -1
1 1
2 2
-10 -1
【输出样例】
文本
-10 -1
0 -1
1 0
0 0
1 1
2 2
0 1
-1 0
【数据范围】
- 1≤N≤200000
- ∣xi∣,∣yi∣≤1000000000
- xi,yi 均为整数。
【来源】
Library Checker(yosupo06) sort_points_by_argument
本题为 special judge(输出任意合法解),暂不可本地评测。