QJ185 - Sửa đổi mảng
Xem dưới dạng PDFMô tả bài toán: Cho một mảng độ dài $N$ là $A = [A_{1}, A_{2},..., A_{N}]$, mảng này có thể chứa các số nguyên lặp lại. Bây giờ Tiểu Minh muốn sửa đổi mảng này theo phương pháp sau để được mảng không còn số nguyên lặp lại. Tiểu Minh sẽ lần lượt sửa đổi $A_{2}, A_{3},..., A_{N}$. Khi sửa đổi $A_{i}$, Tiểu Minh sẽ kiểm tra xem $A_{i}$ đã từng xuất hiện trong $A_{1} \sim A_{i- 1}$ hay chưa. Nếu đã xuất hiện, Tiểu Minh sẽ cộng thêm $1$ vào $A_{i}$; nếu giá trị mới này vẫn xuất hiện trước đó, Tiểu Minh sẽ tiếp tục cộng thêm $1$ vào $A_{i}$ cho đến khi nhận được giá trị mới chưa từng xuất hiện trong $A_{1} \sim A_{i- 1}$. Sau khi $A_{N}$ được sửa đổi theo cách trên, rõ ràng mảng $A$ sẽ không còn phần tử lặp lại. Cho mảng $A$ ban đầu, hãy tính mảng $A$ sau khi đã sửa đổi hoàn tất.
Input: Dòng đầu tiên chứa một số nguyên $N$, dòng thứ hai chứa $N$ số nguyên $A_{1}, A_{2},..., A_{N}$.
Output: Xuất ra $N$ số nguyên, lần lượt là $A_{1}, A_{2},..., A_{N}$.
Input mẫu:
5
2 1 1 3 4
Output mẫu:
2 1 3 4 5
Quy mô và ràng buộc test case:
Với 80% test case, $1 \le N \le 10^{4}$.
Với tất cả test case, $1 \le N \le 10^{5}$, $1 \le A_{i} \le 10^{6}$.
Nhận xét