Nhân viên cứu hộ (Platinum)
Nộp bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
4.0s
Python 3
5.0s
Giới hạn bộ nhớ:
256M
Đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++, Go, Java, Kotlin, Pascal, Python, Scratch
Có nhân viên cứu hộ, mỗi người được phân công một ca trực liên tục được biểu diễn bởi đoạn thời gian (với ). Quản lý cần sa thải đúng nhân viên trong số nhân viên này.
Hãy tính tổng thời gian bao phủ tối đa có thể đạt được sau khi sa thải đúng nhân viên. Tổng thời gian bao phủ là độ dài của hợp các đoạn thời gian còn lại.
Dữ liệu vào
- Dòng đầu ghi hai số nguyên và ().
- dòng tiếp theo, mỗi dòng ghi hai số nguyên và biểu diễn ca trực của nhân viên thứ .
- Tất cả các giá trị đều phân biệt.
Dữ liệu ra
Một số nguyên duy nhất — tổng thời gian bao phủ tối đa sau khi sa thải đúng nhân viên.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 2 1 8 7 15 2 14 |
12 | Sa thải nhân viên và , giữ lại . Tuy nhiên tối ưu là: sa thải và , giữ và... thực ra tối ưu là giữ và : bao phủ = độ dài 12. |
| 5 2 1 5 3 8 7 12 10 15 13 20 |
16 | Giữ lại , , : bao phủ có độ dài . |
Ghi chú
- Nếu , tất cả nhân viên đều bị sa thải và tổng bao phủ bằng 0.
- Có thể có các đoạn thời gian chồng lấp nhau.
Bình luận