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

Không có ý kiến tại thời điểm này.