Mô phỏng Messenger
Đề bài
Mô tả
Polycarp có người bạn, được đánh số từ đến . Danh sách trò chuyện gần đây của anh ta là một hoán vị của : là người bạn vừa nhắn tin gần nhất, là người thứ hai gần nhất, và cứ thế tiếp tục.
Ban đầu danh sách có dạng .
Sau đó Polycarp nhận tin nhắn. Tin nhắn thứ đến từ người bạn . Khi đó người bạn được chuyển lên đầu danh sách, còn tất cả những người đang đứng từ đầu danh sách đến vị trí hiện tại của đều bị dịch xuống một bậc. Nếu đã ở ngay đầu danh sách thì không có gì thay đổi.
Ví dụ, nếu danh sách là :
- nhận tin từ người , danh sách thành ;
- nhận tin từ người , danh sách không đổi ;
- nhận tin từ người , danh sách thành .
Với mỗi người bạn, hãy xét tất cả các vị trí mà người đó từng đứng: ở trạng thái ban đầu và sau mỗi tin nhắn. Với mỗi người bạn, tìm vị trí nhỏ nhất và vị trí lớn nhất mà người đó từng đứng.
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và — số người bạn và số tin nhắn.
- Dòng thứ hai chứa số nguyên — người gửi của các tin nhắn.
Dữ liệu ra
In ra dòng. Dòng thứ chứa hai số nguyên: vị trí nhỏ nhất và vị trí lớn nhất mà người bạn từng đứng (tính cả trạng thái ban đầu và sau mỗi tin nhắn).
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 4 3 5 1 4 |
1 3 2 5 1 4 1 5 1 5 |
Danh sách qua các bước: . Chẳng hạn người lần lượt ở các vị trí , nên nhỏ nhất là , lớn nhất là . |
| 4 3 1 2 4 |
1 3 1 2 3 4 1 4 |
Danh sách qua các bước: . Người ở các vị trí ; người ở các vị trí . |
Bình luận