trang chủ / đề bài / chatlist

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 k 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 n tin nhắn; tin nhắn thứ i đến từ người bạn có mã số idi. Với mỗi tin nhắn, điện thoại xử lý như sau:

  • Nếu cuộc trò chuyện với idi đ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:
    1. Nếu màn hình đang hiển thị đủ k cuộc trò chuyện thì cuộc trò chuyện ở vị trí cuối cùng (vị trí k) bị xoá khỏi màn hình.
    2. Cuộc trò chuyện với idi đượ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ả n tin nhắn.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên n và k: 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 n số nguyên id1,id2,…,idn: 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 m: số cuộc trò chuyện hiển thị trên màn hình sau khi nhận hết n tin nhắn.
  • Dòng thứ hai in ra m số nguyên ids1,ids2,…,idsm, trong đó idsi là mã số ứng với cuộc trò chuyện ở vị trí thứ i tính từ trên xuống.

Ràng buộc

  • 1≤n,k≤2·105
  • 1≤idi≤109

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 m=3<k=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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0