#5457. Gộp khoảng (MERGEINT)

Bộ nhớ: 512 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Cho N khoảng thời gian, mỗi khoảng được biểu diễn bởi thời điểm bắt đầu S và kết thúc E . Hãy gộp tất cả các khoảng thời gian chồng lấn nhau thành các khoảng rời rạc và in ra kết quả theo thứ tự tăng dần của thời điểm bắt đầu.

Dữ liệu:

  • Dòng 1: Số nguyên N .
  • N dòng tiếp theo: Mỗi dòng chứa hai số nguyên S_i, E_i ( 0 \le S_i \le E_i \le 10^9 ).

Kết quả:

  • In ra các khoảng sau khi gộp, mỗi khoảng trên một dòng gồm thời điểm bắt đầu và kết thúc.

Ví dụ:

Dữ liệu:

4
1 3
8 10
2 6
15 18

Kết quả:

1 6
8 10
15 18

Giới hạn:

  • 70% số test có 1 \le N \le 100 (Thuật toán sắp xếp và gộp đơn giản).
  • 30% số test có 100 < N \le 10^5 (Cần sắp xếp hiệu quả O(N \log N) trước khi gộp).