Vòng lặp
Mô tả
Ở Hà Nội, công ty vận tải đang thử nghiệm đội xe buýt điện chạy theo mô hình tuyến vòng. Tuyến có n trạm được đánh số từ 0 đến n-1, mỗi trạm lưu thông tin trạm kế tiếp mà xe buýt sẽ đi tới. Dữ liệu được cho bởi mảng keTiep gồm đúng n phần tử, trong đó keTiep[i] là chỉ số trạm tiếp theo sau trạm i.
Một chiếc xe buýt xuất phát từ trạm s, ghi lại lần lượt các trạm nó đi qua cho đến khi quay về đúng trạm s. Bạn cần in ra danh sách các trạm trong một chu kỳ trọn vẹn (bao gồm trạm s ở cả đầu và cuối), theo đúng thứ tự di chuyển.
Ví dụ, nếu keTiep = [2, 0, 1] và s = 0, lộ trình là 0 → 2 → 1 → 0, kết quả là [0, 2, 1, 0].
Đầu vào
- Dòng đầu tiên chứa hai số nguyên
nvàs(1 ≤ n ≤ 1000, 0 ≤ s ≤ n-1). - Dòng thứ hai chứa
nsố nguyên cách nhau bởi dấu cách, mô tả mảngkeTiep(0 ≤ keTiep[i] ≤ n-1).
Đầu ra
- In ra chu kỳ hoàn chỉnh: dãy các trạm đi qua, bắt đầu và kết thúc tại
s, các phần tử cách nhau bởi một dấu cách.
Ràng buộc
- 1 ≤ n ≤ 1000.
- 0 ≤ s ≤ n-1.
- 0 ≤ keTiep[i] ≤ n-1.
- Dữ liệu luôn đảm bảo từ
s, theo mối liên kếtkeTiep, xe sẽ quay vềssau hữu hạn bước.
Ví dụ
Ví dụ 1:
- Đầu vào:
3 0và2 0 1 - Từ trạm 0, xe đi tới trạm keTiep[0]=2. Từ trạm 2, xe tới keTiep[2]=1. Từ trạm 1, xe tới keTiep[1]=0. Xe quay về trạm 0.
- Đầu ra:
0 2 1 0
Ví dụ 2:
- Đầu vào:
4 1và1 2 3 0 - Từ trạm 1, xe tới 2, rồi 3, rồi 0, rồi quay về 1. Chu kỳ là 1 → 2 → 3 → 0 → 1.
- Đầu ra:
1 2 3 0 1