Gửi bài giải
Điểm:
100,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
1G
Input:
phonghop.inp
Output:
phonghop.out
Ngôn ngữ cho phép
C++, PyPy, Python
Nam là quản lý của một trung tâm hội nghị. Trung tâm chỉ có một phòng họp duy nhất, nhưng lại nhận được yêu cầu tổ chức ~N~ cuộc họp khác nhau.
Mỗi cuộc họp ~i~ có:
- Thời gian bắt đầu: ~a_i~
- Thời gian kết thúc: ~b_i~
Quy tắc:
- Hai cuộc họp có thể diễn ra trong cùng một ngày nếu:
- Khoảng thời gian làm việc của chúng chỉ giao nhau tại điểm đầu hoặc điểm cuối.
- Ví dụ: Cuộc họp A kết thúc lúc 10h, cuộc họp B bắt đầu lúc 10h → được phép.
Sắp xếp lịch sao cho số lượng cuộc họp được tổ chức là lớn nhất.
Input (PHONGHOP.INP
)
- Dòng đầu: Số nguyên ~N~ — số lượng cuộc họp ~(1 \leq N \leq 1000)~.
- ~N~ dòng tiếp theo, mỗi dòng gồm hai số nguyên:
- ~a_i~: thời điểm bắt đầu.
- ~b_i~: thời điểm kết thúc.
Output (PHONGHOP.OUT
)
- Dòng 1: Số lượng lớn nhất các cuộc họp có thể tổ chức.
- Dòng 2: Danh sách số hiệu (chỉ số) của các cuộc họp được chọn, theo thứ tự tăng dần thời gian kết thúc.
Sample
PHONGHOP.INP
7
1 4
2 5
1 7
6 8
4 10
5 8
12 16
PHONGHOP.OUT
3
1 4 7
Giải thích:
- Lịch họp tối ưu:
- Cuộc họp 1: [1,4]
- Cuộc họp 4: [6,8]
- Cuộc họp 7: [12,16]
Ràng buộc:
- 60% số test: ~N \leq 10^2~, ~a_i \leq 10^6~
- 40% số test: ~10^2 < N \leq 10^3~, ~a_i \leq 10^9~
Bình luận