Khôi phục hàng đợi
Đề bài
Mô tả
Có học sinh đang xếp thành một hàng dọc. Mỗi học sinh có một mã số (ID) phân biệt, là số nguyên dương.
Trong lúc chờ đợi, mỗi học sinh ghi lại hai số: mã số của học sinh đứng ngay trước mình và mã số của học sinh đứng ngay sau mình trong hàng. Nếu không có ai đứng trước (học sinh đứng đầu hàng) hoặc không có ai đứng sau (học sinh đứng cuối hàng), học sinh đó ghi số vào vị trí tương ứng.
Sau đó tất cả rời đi, và các ghi chép bị xáo trộn thứ tự. Lưu ý rằng mỗi học sinh không ghi lại mã số của chính mình, và các dòng ghi chép được đưa cho bạn theo thứ tự bất kỳ.
Cho danh sách các cặp ghi chép, hãy khôi phục lại thứ tự các học sinh trong hàng, từ đầu hàng đến cuối hàng. Dữ liệu đảm bảo luôn tương ứng với đúng một hàng hợp lệ.
Dữ liệu vào
- Dòng đầu chứa số nguyên — số học sinh trong hàng.
- dòng tiếp theo, mỗi dòng chứa hai số nguyên và : là mã số của người đứng ngay trước, là mã số của người đứng ngay sau học sinh viết dòng này. Giá trị thay cho mã số nếu người láng giềng tương ứng không tồn tại.
Dữ liệu ra
In ra số nguyên — dãy mã số của các học sinh theo đúng thứ tự trong hàng, từ đầu đến cuối.
Ràng buộc
- Tất cả mã số của các học sinh là phân biệt.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 92 31 0 7 31 0 7 141 |
92 7 31 141 | Học sinh 7 đứng đầu (người trước là 0). Học sinh 92 có người sau là 31, học sinh 31 có người sau là 0 (cuối hàng). Hàng đúng là 92 7 31 141. |
| 2 0 1 2 0 |
2 1 | Dòng "0 1" là của người đứng đầu (không ai đứng trước, người sau là 1) nên người đứng đầu chính là 2. Dòng "2 0" là của người cuối hàng (người trước là 2). Hàng là 2 1. |
Bình luận