JOI 2016 - Swapping Bibs
Xem PDF\(N\) học sinh của trường JOI đứng thành một hàng từ tây sang đông. Học sinh thứ \(i\) tính từ đầu phía tây là học sinh \(i\). Mỗi học sinh đeo một số báo danh ghi một số nguyên; ban đầu số báo danh của học sinh \(i\) ghi \(A_i\).
Có \(M\) cây gậy, được đánh số từ \(1\) đến \(M\). Lần lượt với \(k=1,2,\ldots,M\), thực hiện quy trình sau; quy trình của gậy \(k\) chỉ bắt đầu sau khi quy trình của gậy \(k-1\) kết thúc.
- Giáo viên đưa gậy \(k\) cho học sinh 1.
- Khi học sinh \(i\) nhận gậy \(k\):
- Nếu \(1\le i\le N-1\), so sánh số dư khi số trên hai số báo danh của học sinh \(i\) và \(i+1\) được chia cho \(k\). Nếu số dư của học sinh \(i\) lớn hơn, hai học sinh đổi số báo danh cho nhau. Sau đó học sinh \(i\) đưa gậy cho học sinh \(i+1\).
- Nếu \(i=N\), học sinh \(N\) đưa gậy cho giáo viên.
- Khi giáo viên nhận lại gậy \(k\), quy trình của gậy đó kết thúc.
Hãy xác định số trên số báo danh của từng học sinh sau khi giáo viên nhận lại gậy \(M\).
Dữ liệu vào
- Dòng đầu chứa hai số nguyên \(N,M\) (\(1\le N,M\le100\)).
- \(N\) dòng tiếp theo: dòng thứ \(i\) chứa \(A_i\) (\(1\le A_i\le1000\)).
Dữ liệu ra
In ra \(N\) dòng. Dòng thứ \(i\) là số trên số báo danh của học sinh \(i\) sau toàn bộ quá trình.
Chấm điểm
Có 5 bộ dữ liệu chấm, mỗi bộ trị giá 20 điểm.
Ví dụ
Ví dụ 1
Input
6 4
3
2
8
3
1
5
Output
2
3
1
8
5
3
Giải thích
Sau các gậy \(1,2,3,4\), các dãy lần lượt là 3 2 8 3 1 5, 2 8 3 3 1 5, 2 3 3 1 8 5, và 2 3 1 8 5 3.
Ví dụ 2
Input
10 6
1
2
3
4
5
6
7
8
9
10
Output
6
1
2
3
10
4
8
7
9
5
Nguồn
Kỳ thi sơ loại Olympic Tin học Nhật Bản 2015/2016, bài 2.
Kỳ thi:
- JOI 2015/2016 - Vòng sơ khảo (1 Tháng 1., 2016)
Bình luận