PERLIS - Phục hồi mảng ban đầu

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift

Cho hai dãy ~A~ và ~B~ gồm ~N~ phần tử. Bao gồm:

  • Dãy ~A: A_1, A_2, A_3, . . . , A_N~ là một "hoán vị" của các số nguyên liên tiếp từ 1 đến ~N~. Phần tử thứ ~i~ của dãy được gọi là ~A_i~.
  • Dãy ~B: B_1, B_2, . . . , B_N~ . Trong đó, ~B_i~ là số lượng phần tử "dãy con tăng dài nhất" bắt đầu từ phần tử thứ ~i~ của dãy ~A~ cho trước.

Yêu cầu: cho dãy ~B~, hãy tìm lại dãy ~A~. Nếu có nhiều dãy ~A~ thỏa mãn, tìm ra dãy ~A~ có thứ tự từđiển nhỏ nhất.

Input

  • Dòng đầu tiên chứa số nguyên dương ~N~.
  • Dòng tiếp theo chứa ~N~ số ~B_1, B_2, ..., B_N~.

Giới hạn:

  • ~1 ≤ N ≤ 10^5~,
  • ~1 ≤ B_i ≤ N~.

Output

  • In ra N số ~A_1, A_2, ..., A_N~ là hoán vị các số từ 1 đến ~N~ thỏa mãn yêu cầu đề bài.

Sample

Input #1
4
1 2 2 1
Output #1
4 2 1 3
Input #2
5
5 4 3 2 1
Output #2
1 2 3 4 5

Hint

Với ví dụ thứ nhất:

  • Dãy con tăng dài nhất bắt đầu từ phần tử thứ 4 là [3]. Do đó, ~B_4~ = 1.
  • Dãy con tăng dài nhất bắt đầu từ phần tử thứ 3 là [1, 3]. Do đó, ~B_3~ = 2.
  • Dãy con tăng dài nhất bắt đầu từ phần tử thứ 2 là [2, 3]. Do đó, ~B_2~ = 2.
  • Dãy con tăng dài nhất bắt đầu từ phần tử thứ 1 là [1]. Do đó, ~B_1~ = 1.

Với ví dụ thứ hai:

  • Dãy con tăng dài nhất bắt đầu từ phần tử thứ 5 là [5]. Do đó, ~B_5~ = 1.
  • Dãy con tăng dài nhất bắt đầu từ phần tử thứ 4 là [4, 5]. Do đó, ~B_4~ = 2.
  • Dãy con tăng dài nhất bắt đầu từ phần tử thứ 3 là [3, 4, 5]. Do đó, ~B_3~ = 3.
  • Dãy con tăng dài nhất bắt đầu từ phần tử thứ 2 là [2, 3, 4, 5]. Do đó, ~B_2~ = 4.
  • Dãy con tăng dài nhất bắt đầu từ phần tử thứ 1 là [1, 2, 3, 4, 5]. Do đó, ~B_1~ = 5.

Problem source: Kc97ble - Free Contest


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.