Mô phỏng Messenger

Đề bài

Mô tả

Polycarp có n người bạn, được đánh số từ 1 đến n. Danh sách trò chuyện gần đây của anh ta là một hoán vị p của 1,2,,n: p1 là người bạn vừa nhắn tin gần nhất, p2 là người thứ hai gần nhất, và cứ thế tiếp tục.

Ban đầu danh sách có dạng p=[1,2,,n].

Sau đó Polycarp nhận m tin nhắn. Tin nhắn thứ j đến từ người bạn aj. Khi đó người bạn aj đượ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 aj đều bị dịch xuống một bậc. Nếu aj đã ở ngay đầu danh sách thì không có gì thay đổi.

Ví dụ, nếu danh sách là p=[4,1,5,3,2]:

  • nhận tin từ người 3, danh sách thành [3,4,1,5,2];
  • nhận tin từ người 4, danh sách không đổi [4,1,5,3,2];
  • nhận tin từ người 2, danh sách thành [2,4,1,5,3].

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 nm — số người bạn và số tin nhắn.
  • Dòng thứ hai chứa m số nguyên a1,a2,,am — người gửi của các tin nhắn.

Dữ liệu ra

In ra n dòng. Dòng thứ i chứa hai số nguyên: vị trí nhỏ nhất và vị trí lớn nhất mà người bạn i từng đứng (tính cả trạng thái ban đầu và sau mỗi tin nhắn).

Ràng buộc

  • 1n,m3·105
  • 1ain

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: [1,2,3,4,5][3,1,2,4,5][5,3,1,2,4][1,5,3,2,4][4,1,5,3,2]. Chẳng hạn người 2 lần lượt ở các vị trí 2,3,4,4,5, nên nhỏ nhất là 2, lớn nhất là 5.
4 3
1 2 4
1 3
1 2
3 4
1 4
Danh sách qua các bước: [1,2,3,4][1,2,3,4][2,1,3,4][4,2,1,3]. Người 1 ở các vị trí 1,1,2,3; người 3 ở các vị trí 3,3,3,4.

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 GO groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0