Room Allocation
Xem dạng PDFĐộ khó: Khá (3/4 điểm)
📖 Bài giải chi tiết: 👉 Bấm vào đây để xem lời giải cụ thể của bài này trên blog
⚠️ Lưu ý: hãy đảm bảo em đã thật sự cố gắng tự làm bài trước, rồi mới bấm vào xem bài giải nhé!
🎓 Khóa học Lập trình Thuật toán thi đấu của thầy Nguyễn Việt Nam Sơn – 111 buổi video, kèm cặp cá nhân, luyện thi chuyên Tin · HSG Tin học · Tin học trẻ · đội tuyển quốc gia · Olympic/ICPC. 👉 Xem chi tiết khóa học · Thành tích học viên
📞 Đăng ký học: Zalo 0767 666 702 · Facebook Nguyễn Việt Nam Sơn · 🌐 laptrinhthuattoan.blogspot.com
Có một khách sạn lớn và sắp có ~n~ khách hàng đến. Mỗi khách hàng muốn có một phòng đơn (một phòng chỉ dành riêng cho mình).
Bạn biết ngày đến và ngày đi của từng khách hàng. Hai khách hàng có thể ở cùng một phòng nếu ngày đi của khách thứ nhất sớm hơn ngày đến của khách thứ hai.
Hỏi cần ít nhất bao nhiêu phòng để phục vụ tất cả các khách hàng? Và phân phòng cho các khách như thế nào?
Dữ liệu vào
- Dòng đầu tiên chứa số nguyên ~n~: số lượng khách hàng.
- Tiếp theo là ~n~ dòng, mỗi dòng mô tả một khách hàng gồm hai số nguyên ~a~ và ~b~: ngày đến và ngày đi.
Kết quả
- Đầu tiên in ra một số nguyên ~k~: số phòng ít nhất cần dùng.
- Sau đó in ra một dòng chứa số phòng của từng khách hàng, theo đúng thứ tự như trong dữ liệu vào. Các phòng được đánh số ~1, 2, \ldots, k~. Bạn có thể in ra một phương án hợp lệ bất kỳ.
Giới hạn
- ~1 \le n \le 2 \cdot 10^5~.
- ~1 \le a \le b \le 10^9~.
Sample Input 1
3
1 2
2 4
4 4
Sample Output 1
2
1 2 1
Nguồn: CSES Problem Set – 1164.
Bình luận