Danh sách trò chuyện
Đề bài
Mô tả
Điện thoại của bạn hiển thị danh sách các cuộc trò chuyện gần đây, nhưng màn hình chỉ chứa được tối đa cuộc trò chuyện. Ban đầu màn hình trống.
Mỗi cuộc trò chuyện ứng với đúng một người bạn, và được xác định duy nhất bởi mã số của người bạn đó.
Trong ngày hôm nay bạn sẽ nhận được tin nhắn; tin nhắn thứ đến từ người bạn có mã số . Với mỗi tin nhắn, điện thoại xử lý như sau:
- Nếu cuộc trò chuyện với đang hiển thị trên màn hình thì không có gì thay đổi: danh sách giữ nguyên cả về thành phần lẫn thứ tự.
- Ngược lại:
- Nếu màn hình đang hiển thị đủ cuộc trò chuyện thì cuộc trò chuyện ở vị trí cuối cùng (vị trí ) bị xoá khỏi màn hình.
- Cuộc trò chuyện với được đưa lên vị trí đầu tiên (trên cùng), tất cả các cuộc trò chuyện còn lại bị đẩy xuống một vị trí.
Hãy xác định danh sách các cuộc trò chuyện trên màn hình (theo thứ tự từ trên xuống dưới) sau khi xử lý xong cả tin nhắn.
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và : số tin nhắn và số cuộc trò chuyện tối đa màn hình hiển thị được.
- Dòng thứ hai chứa số nguyên : mã số người gửi của từng tin nhắn theo thứ tự thời gian.
Dữ liệu ra
- Dòng đầu in ra một số nguyên : số cuộc trò chuyện hiển thị trên màn hình sau khi nhận hết tin nhắn.
- Dòng thứ hai in ra số nguyên , trong đó là mã số ứng với cuộc trò chuyện ở vị trí thứ tính từ trên xuống.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 7 2 1 2 3 2 1 3 2 |
2 2 1 |
Màn hình lần lượt là: [], [1], [2, 1], [3, 2], [3, 2], [1, 3], [1, 3], [2, 1]. Tin nhắn thứ tư (từ 2) và thứ sáu (từ 3) không làm gì vì các cuộc trò chuyện đó đang hiển thị, kể cả khi chúng không ở vị trí trên cùng. |
| 10 4 2 3 3 1 1 2 1 2 3 3 |
3 1 3 2 |
Màn hình đạt [1, 3, 2] sau tin nhắn thứ tư rồi không đổi nữa, vì mọi tin nhắn sau đó đều đến từ ba người bạn đang hiển thị. Do chỉ có ba người gửi khác nhau nên . |
Bình luận