trang chủ / đề bài / shufflegold

Xáo Bài Của Bessie

Đề bài

Mô tả

Có một bộ bài gồm N lá, đánh số từ 1 đến N từ trên xuống. Một phép xáo bài được định nghĩa trên M lá đầu: sau khi xáo, lá thứ i trong M lá đầu sẽ chuyển đến vị trí P[i] (trong M lá đầu đó).

Quá trình thực hiện như sau: lặp lại cho đến khi bộ bài còn ít hơn M lá:

  1. Xáo M lá đầu theo hoán vị P.
  2. Rút lá trên cùng ra, đặt úp (face-down) lên bàn thành một chồng.

Khi bộ bài còn ít hơn M lá, rút từng lá từ trên xuống (không xáo), đặt úp lên chồng bài đó cho đến hết.

Sau khi xong, chồng bài úp trên bàn có N lá. Lá trên cùng chồng là lá được đặt xuống cuối cùng (vị trí 1), lá dưới cùng là lá đặt đầu tiên (vị trí N).

Cho Q truy vấn, mỗi truy vấn hỏi: lá ở vị trí q trong chồng bài (từ trên xuống, vị trí 1 = trên cùng) có số hiệu là bao nhiêu?

Dữ liệu vào

  • Dòng 1: Ba số nguyên N, M, Q.
  • M dòng tiếp theo: Hoán vị P[1],P[2],…,P[M] (mỗi số trên một dòng).
  • Q dòng tiếp theo: Mỗi dòng là một số nguyên qi là vị trí truy vấn.

Dữ liệu ra

  • Q dòng, mỗi dòng là số hiệu lá bài tại vị trí qi trong danh sách rút.

Ràng buộc

  • 2≤M≤100000
  • M≤N≤109
  • 1≤Q≤5000
  • 1≤qi≤N
  • 50% test có N≤100000

Ví dụ

Input Output Giải thích
5 3 5
3
1
2
1
2
3
4
5
4
5
3
1
2
Bộ bài ban đầu: [1,2,3,4,5]. P=[3,1,2], nghĩa là lá ở vị trí 1→3, 2→1, 3→2. Xáo [1,2,3]: vị trí 1 lấy lá từ vị trí 2 (P[2]=1) → [2,3,1,4,5], rút lá 2. Tiếp theo: xáo [3,1,4]→[1,4,3,5], rút lá 1. Tiếp: xáo [4,3,5]→[3,5,4], rút lá 3. Còn 2 lá [5,4]: rút 5 rồi 4. Thứ tự rút: 2,1,3,5,4. Chồng bài (trên cùng = rút cuối): vị trí 1=4, 2=5, 3=3, 4=1, 5=2.

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