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

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.