Loại bỏ vật phẩm

Đề bài

Mô tả

n vật phẩm được đánh số từ 1 đến n. Ban đầu vật phẩm số i nằm ở vị trí thứ i. Các vị trí được chia thành nhiều trang liên tiếp: mỗi trang chứa đúng k vị trí (trang 1 gồm các vị trí 1..k, trang 2 gồm k+1..2k, ...); trang cuối có thể còn trống một số vị trí.

Trong số đó có m vật phẩm đặc biệt cần bị loại bỏ, với chỉ số p1<p2<<pm.

Ta thực hiện lặp lại thao tác sau cho tới khi không còn vật phẩm đặc biệt nào:

  • Xét trang có số thứ tự nhỏ nhất mà đang chứa ít nhất một vật phẩm đặc biệt chưa bị loại. Loại bỏ tất cả vật phẩm đặc biệt hiện đang nằm trong trang đó (tính là một thao tác).
  • Sau khi một vật phẩm bị loại, vị trí của nó trở nên trống; mọi vật phẩm phía sau (chỉ số lớn hơn) đồng loạt dồn lên lấp chỗ trống. Việc dồn có thể đẩy các vật phẩm lên các trang phía trước. Số trang của mỗi vật phẩm luôn được tính theo vị trí hiện tại sau khi đã dồn.

Hãy tính tổng số thao tác cần thực hiện.

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên n, m, k.
  • Dòng thứ hai chứa m số nguyên phân biệt tăng dần p1<p2<<pm: chỉ số các vật phẩm đặc biệt.

Dữ liệu ra

  • In ra một số nguyên: tổng số thao tác.

Ràng buộc

  • 1n1018
  • 1m105
  • 1m,kn
  • 1p1<p2<<pmn

Ví dụ

Input Output Giải thích
10 4 5
3 5 7 10
3 Trang gồm 5 vị trí. Thao tác 1: trang 1[1,2,3,4,5], loại 35. Sau khi dồn, trang 1[1,2,4,6,7]. Thao tác 2: loại 7. Thao tác 3: trang chứa số đặc biệt còn lại là [9,10], loại 10.
13 4 5
7 8 9 10
1 Cả 7,8,9,10 đều nằm trong trang 2 (vị trí 6..10), loại hết chỉ trong một thao tác.

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 1.26.3 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