Sắp xếp điểm theo góc cực
Xem dưới dạng PDF
Gửi bài giải
Điểm:
20
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Kiểu bài tập
Tý đang chơi trò chơi lắp ghép hình học trên mặt phẳng toạ độ. Có \(n\) điểm trên mặt phẳng, Tý muốn sắp xếp chúng theo thứ tự quay quanh gốc toạ độ \(O(0,0)\), bắt đầu từ hướng dương của trục \(Ox\) và quay ngược chiều kim đồng hồ. Nếu hai điểm có cùng hướng nhìn từ gốc, điểm nào gần gốc hơn sẽ đứng trước.
Hãy giúp Tý viết chương trình sắp xếp các điểm.
Định dạng đầu vào
- Dòng đầu chứa số nguyên \(n\) (\(1 \le n \le 10^5\)).
- \(n\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(x_i, y_i\) (\(|x_i|, |y_i| \le 10^6\)). Không có điểm nào trùng với gốc toạ độ.
Định dạng đầu ra
- In ra \(n\) dòng, mỗi dòng là toạ độ của các điểm sau khi sắp xếp.
Ví dụ
Input:
3
0 1
1 0
-1 0
Output:
1 0
0 1
-1 0
Giải thích: Góc của \((1,0)\) là \(0^\circ\), của \((0,1)\) là \(90^\circ\), của \((-1,0)\) là \(180^\circ\).
Ràng buộc
- Subtask 1 (20 điểm): \(n \le 100\).
- Subtask 2 (30 điểm): \(n \le 10^4\).
- Subtask 3 (50 điểm): \(n \le 10^5\).
Nhận xét