DHBB 2017 - CNT - 11 - Sắp xếp lại
Xem dạng PDF
Gửi bài giải
Điểm:
0,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
1G
Input:
stdin
Output:
stdout
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT
Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài
Cho hoán vị ~P = \{p_1, p_2, \dots, p_n\}~ của ~\{1, 2, \dots, n\}~. Người ta muốn sắp xếp lại hoán vị này để thu được hoán vị ~\{1, 2, \dots, n\}~ bằng cách sau: "Lần lượt xét các vị trí ~1, 2, \dots, n~. Với mỗi vị trí ~i~ liên tục đổi chỗ ~p_i~ cho số đằng trước nó chừng nào số này lớn hơn ~p_i~".
Ví dụ, với hoán vị ~\{3, 2, 1, 5, 4\}~ qui trình đổi chỗ thực hiện như sau:
- Với ~p_1 = 3~: ~(3, 2, 1, 5, 4)~ 0 phép đổi chỗ
- Với ~p_2 = 2~: ~(3, 2, 1, 5, 4) \to (2, 3, 1, 5, 4)~ 1 phép đổi chỗ
- Với ~p_3 = 1~: ~(2, 3, 1, 5, 4) \to (2, 1, 3, 5, 4) \to (1, 2, 3, 5, 4)~ 2 phép đổi chỗ
- Với ~p_4 = 5~: ~(1, 2, 3, 5, 4)~ 0 phép đổi chỗ
- Với ~p_5 = 4~: ~(1, 2, 3, 5, 4) \to (1, 2, 3, 4, 5)~ 1 phép đổi chỗ
Cho biết số phép đổi chỗ của các vị trí ~1, 2, \dots, n~.
Yêu cầu: Hãy xác định hoán vị ban đầu.
Input
- Dòng đầu tiên ghi số nguyên dương ~T \le 5~ là số lượng tests.
- Tiếp theo là ~T~ nhóm dòng, mỗi nhóm mô tả một test:
- Dòng 1: Ghi số nguyên dương ~n~ (~1 \le n \le 200000~).
- Dòng 2: Ghi các số nguyên ~w_1, w_2, \dots, w_n~ với ~w_i~ là số lần đổi chỗ mà ~p_i~ thực hiện (~i = 1, 2, \dots, n~).
Output
- In ra ~T~ dòng, dòng thứ ~i~ ghi ~n~ số nguyên mô tả hoán vị ~p_1, p_2, \dots, p_n~ ban đầu ứng với test thứ ~i~.
Sample Input 1
2
3
0 1 0
5
0 1 2 0 1
Sample Output 1
2 1 3
3 2 1 5 4
Bình luận