JOI 2007 - Shuffling Cards
Xem PDFCó \(2n\) lá bài mang các số từ \(1\) đến \(2n\), ban đầu được xếp thành một chồng theo thứ tự \(1,2,3,\ldots,2n\) từ trên xuống dưới.
Ta thực hiện một số thao tác sắp xếp lại chồng bài theo hai cách sau:
-
Cắt tại số nguyên \(k\): tách \(k\) lá trên cùng thành chồng \(A\), các lá còn lại thành chồng \(B\), rồi đặt chồng \(B\) lên trên chồng \(A\). Thứ tự các lá trong mỗi chồng được giữ nguyên.
-
Trộn xen kẽ: tách \(n\) lá trên cùng thành chồng \(A\), các lá còn lại thành chồng \(B\), rồi ghép lại thành một chồng có thứ tự từ trên xuống là lá thứ nhất của \(A\), lá thứ nhất của \(B\), lá thứ hai của \(A\), lá thứ hai của \(B\), \(\ldots\), lá thứ \(n\) của \(A\), lá thứ \(n\) của \(B\).
Yêu cầu
Thực hiện các thao tác được cho trong đầu vào và in số trên các lá bài theo thứ tự từ trên xuống dưới sau khi hoàn thành mọi thao tác.
Dữ liệu vào
Đọc từ đầu vào chuẩn:
- Dòng thứ nhất chứa số nguyên \(n\); số lá bài là \(2n\).
- Dòng thứ hai chứa số nguyên \(m\) là số thao tác.
- Mỗi dòng từ dòng thứ \(3\) đến dòng thứ \(m+2\) chứa một số nguyên \(k\), mô tả các thao tác theo thứ tự thực hiện. Nếu \(k=0\), thực hiện thao tác trộn xen kẽ. Nếu \(1\le k\le 2n-1\), thực hiện thao tác cắt tại \(k\).
Chỉ thực hiện đúng \(m\) thao tác đã khai báo. Bỏ qua dữ liệu nếu có sau dòng thứ \(m+2\).
Dữ liệu ra
Ghi ra đầu ra chuẩn \(2n\) dòng. Dòng thứ \(i\) chứa số trên lá bài thứ \(i\) tính từ trên xuống dưới sau khi hoàn thành các thao tác.
Ràng buộc
- \(1\le n\le 100\).
- \(1\le m\le 1000\).
- Mỗi thao tác được biểu diễn bởi một số nguyên \(k\) thỏa mãn \(0\le k\le 2n-1\).
Phân nhóm
- Có \(5\) bộ dữ liệu được chấm độc lập, với tổng điểm tối đa là \(20\).
Ví dụ
Ví dụ 1
Input
2
2
1
0
Output
2
4
3
1
Ví dụ 2
Input
3
4
2
4
0
0
Output
1
5
4
3
2
6
Kỳ thi:
- JOI 2006/2007 - Vòng sơ khảo (17 Tháng 12., 2006)


Bình luận