trang chủ / bài tập / 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 — 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

  • 2M100000
  • MN109
  • 1Q5000
  • 1qiN
  • 50% test có N100000

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