Xáo Bài Bessie

Đề bài

Mô tả

Có một bộ bài N lá được đánh số 1 đến N theo thứ tự từ trên xuống dưới. Cho một hoán vị P gồm M phần tử mô tả thao tác xáo bài: lá bài ở vị trí i trong nhóm M lá trên cùng sẽ chuyển sang vị trí P[i].

Thực hiện thao tác sau lặp đi lặp lại cho đến khi bộ bài còn ít hơn M lá:

  1. Xáo M lá trên cùng theo hoán vị P.
  2. Lấy lá bài trên cùng ra và úp xuống (xây một chồng bài mặt-xuống).

Sau đó, các lá bài còn lại trong bộ bài được úp xuống từng lá một (từ trên xuống).

Chồng bài mặt-xuống sau khi hoàn thành: vị trí 1 là lá trên cùng (lá úp xuống cuối cùng), vị trí N là lá dưới cùng (lá úp xuống đầu tiên).

Cho Q truy vấn, mỗi truy vấn hỏi lá bài ở vị trí qi trong chồng bài cuối cùng.

Dữ liệu vào

  • Dòng 1: Ba số nguyên N, M, Q.
  • M dòng tiếp theo: Số nguyên P[i] — mỗi dòng một giá trị.
  • Q dòng tiếp theo: Số nguyên qi — vị trí truy vấn.

Dữ liệu ra

  • Q dòng, mỗi dòng là nhãn của lá bài tại vị trí qi trong chồng bài cuối cùng.

Ràng buộc

  • 2M100000
  • MN100000
  • 1Q5000
  • 1P[i]M (hoán vị hợp lệ)
  • 1qiN

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]. Xáo lần 1: [1,2,3] → [2,3,1], lấy lá 2. Xáo lần 2: [3,1,4] → [1,4,3], lấy lá 1. Xáo lần 3: [4,3,5] → [3,5,4], lấy lá 3. Còn lại [5,4] úp xuống. Chồng cuối (trên→dưới): [4,5,3,1,2].

Ghi chú

  • Số lần xáo bài là R=NM+1, sau đó còn lại M1 lá được úp xuống.
  • Vị trí 1 đến M1 tương ứng với M1 lá cuối úp xuống (theo thứ tự ngược).
  • Vị trí M đến N là các lá bị lấy ra trong các lần xáo (theo thứ tự từ gần nhất đến xa nhất).

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