Đưa ra một danh sách các khoảng, thực hiện kết hợp chúng và giảm chồng chéo. Điều đó có nghĩa là, các phần chồng chéo được giảm. ([a, b] U [c, d] = [a, d]
nếu b > c
) Giả sử tất cả a <b trong tất cả các khoảng thời gian [a, b]
. Thực hiện như một chức năng của một danh sách các khoảng đầu vào -> danh sách các khoảng đầu ra. Mã ngắn nhất sẽ thắng. Bạn không thể sử dụng bất kỳ thư viện hiện có.
Làm rõ:
- Khoảng cách mở và đóng không được phân biệt.
- Khoảng cho số thực, không phải số nguyên. (
[2, 3], [4, 5] -> [2, 3], [4, 5]
) - Không cần sắp xếp các khoảng đầu ra
- Thứ tự nếu đầu vào không quan trọng
- Đầu vào bất hợp pháp chỉ là
[a, b]
nơib >= a
, nó không liên quan gì đến thứ tự các khoảng đầu vào và số lượng khoảng đầu vào. - Bạn không cần hiển thị thông báo lỗi về các hành vi không xác định
Ví dụ (có dòng số)
[2, 4], [7, 9] --> [2, 4], [7, 9]
234
789
-> 234 789
[1, 5], [2, 10] --> [1, 10] (overlapping [2, 5] reduced)
12345
234567890
-> 1234567890
[2, 4], [3, 6], [8, 9] -> [2, 6], [8, 9]
234
3456
89
-> 23456 89
[4, 2], [2, 2] -> (undefined behavior: against the assumption)