Xáo Bài Bessie
Nộp bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
2.0s
Python 3
5.0s
Giới hạn bộ nhớ:
256M
Đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++, Go, Java, Kotlin, Pascal, Python, Scratch
Có một bộ bài lá được đánh số đến theo thứ tự từ trên xuống dưới. Cho một hoán vị gồm phần tử mô tả thao tác xáo bài: lá bài ở vị trí trong nhóm lá trên cùng sẽ chuyển sang vị trí .
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 lá:
- Xáo lá trên cùng theo hoán vị .
- 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í là lá trên cùng (lá úp xuống cuối cùng), vị trí là lá dưới cùng (lá úp xuống đầu tiên).
Cho truy vấn, mỗi truy vấn hỏi lá bài ở vị trí trong chồng bài cuối cùng.
Dữ liệu vào
- Dòng 1: Ba số nguyên , , .
- dòng tiếp theo: Số nguyên — mỗi dòng một giá trị.
- dòng tiếp theo: Số nguyên — vị trí truy vấn.
Dữ liệu ra
- dòng, mỗi dòng là nhãn của lá bài tại vị trí trong chồng bài cuối cùng.
Ràng buộc
- (hoán vị hợp lệ)
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à , sau đó còn lại lá được úp xuống.
- Vị trí đến tương ứng với lá cuối úp xuống (theo thứ tự ngược).
- Vị trí đế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