Xây dựng tháp
Xem dạng PDFBạn đang xây dựng một tòa tháp bằng ~N~ viên gạch, các viên gạch có kích thước khác nhau đôi một, lần lượt từ ~1~ đến ~N~.
Quá trình giao gạch kéo dài trong đúng ~N~ ngày. Mỗi ngày, bạn sẽ nhận được chính xác 1 viên gạch. Các viên gạch nhận được tạo thành một hoán vị của các số từ ~1~ đến ~N~.
Quy tắc xây tháp: Bạn chỉ có thể đặt một viên gạch có kích thước ~X~ lên tháp nếu tất cả các viên gạch có kích thước lớn hơn nó (từ ~X+1~ cho đến ~N~) đều đã được đặt lên tháp. Nếu một viên gạch nhận được chưa thỏa mãn điều kiện để đặt lên tháp, bạn phải cất nó vào kho chứa tạm thời.
Hãy in ra kích thước của các viên gạch được đặt lên tháp trong mỗi ngày.
Dữ liệu
- Dòng đầu tiên chứa số nguyên dương ~N~ (~1 \le N \le 10^5~).
- Dòng thứ hai chứa ~N~ số nguyên là kích thước của các viên gạch nhận được theo thứ tự từ ngày 1 đến ngày ~N~. Dữ liệu đảm bảo đây là một hoán vị của ~1 \dots N~.
Kết quả
In ra ~N~ dòng. Dòng thứ ~i~ chứa kích thước của các viên gạch được đặt lên tháp trong ngày thứ ~i~, theo thứ tự giảm dần và cách nhau bởi một khoảng trắng. Nếu trong ngày đó không có viên gạch nào được đặt lên tháp, hãy in ra một dòng trống.
Ví dụ
Input
5
4 5 1 2 3
Output
5 4
3 2 1
Giải thích
- Ngày 1: Nhận gạch 4. Chờ gạch 5 $\rightarrow$ Cất vào kho. (In dòng trống)
- Ngày 2: Nhận gạch 5. Đặt gạch 5 lên tháp. Kiểm tra kho thấy gạch 4 cũng đã thỏa mãn điều kiện (vì 5 đã đặt) $\rightarrow$ Lấy 4 ra đặt lên tháp. (In
5 4) - Ngày 3: Nhận gạch 1. Chờ gạch 3 và 2 $\rightarrow$ Cất kho. (In dòng trống)
- Ngày 4: Nhận gạch 2. Chờ gạch 3 $\rightarrow$ Cất kho. (In dòng trống)
- Ngày 5: Nhận gạch 3. Đặt gạch 3. Sau đó lấy gạch 2 từ kho ra đặt, tiếp tục lấy gạch 1 ra đặt. (In
3 2 1)
Bình luận