Gửi bài giải

Điểm: 0,01 (OI)
Giới hạn thời gian: 2.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

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

Có ~n~ ô đỗ xe tạo thành hình vòng cung được đánh số từ ~1~ đến ~n~ theo chiều kim đồng hồ. Có ~n~ chiếc xe đến đỗ xe, xe nào đến trước thì được ưu tiên đỗ trước. Tại thời điểm ~i~, xe thứ ~i~ đến ô thứ ~p_i~ và muốn đỗ xe ở đó, nếu tại ô thứ ~p_i~ đã có xe đỗ trước đó thì xe thứ ~i~ sẽ đi theo chiều kim đồng hồ cho đến khi gặp được ô đỗ xe đầu tiên không có xe và thực hiện đỗ xe ở đó.

Input

Dòng đầu tiên là số nguyên dương ~n~ — số lượng ô đỗ xe và số xe đến đỗ (~1 \le n \le 3 \cdot 10^5~).

Dòng thứ hai gồm ~n~ số nguyên dương ~p_i~ — ô đỗ xe mà xe thứ ~i~ muốn đỗ (~1 \le p_i \le n~).

Output

In ra ~n~ số nguyên dương, số thứ ~i~ là số hiệu của ô đỗ xe mà xe thứ ~i~ sẽ đỗ.

Scoring

Subtask Điểm Ràng buộc
~1~ ~10 \%~ ~p_i = p_{i+1}~ ~\forall i \in~ [~1, n-1~]
~2~ ~40 \%~ ~n \le 10000~
~3~ ~50 \%~ Không có ràng buộc gì thêm

Sample Input 1

3
2 2 2

Sample Output 1

2 3 1

Sample Input 2

1
1

Sample Output 2

1

Sample Input 3

10
4 5 3 2 1 1 5 8 9 10

Sample Output 3

4 5 3 2 1 6 7 8 9 10

Sample Input 4

15
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Sample Output 4

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Notes

Giải thích test ví dụ: Xe ~1~ là xe đến đầu tiên và được đỗ tại ô ~2~. Sau đó xe ~2~ đến, do ô ~2~ đã được xe ~1~ đỗ nên xe ~2~ đi theo chiều kim đồng hồ và đỗ vào ô đầu tiên chưa có xe đỗ là ô ~3~. Cuối cùng, xe ~3~ đến và phải đỗ vào ô ~1~ do cả ô ~2~ và ô ~3~ đã có xe đỗ.


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.