Phòng họp

Xem dạng PDF

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

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.