Truyền lệnh trong quân đội
Đề bài
Mô tả
Quân đội Berland có sĩ quan được đánh số từ đến . Sĩ quan là tổng chỉ huy và không có cấp trên. Mỗi sĩ quan còn lại có đúng một cấp trên trực tiếp. Cấu trúc này tạo thành một cây có gốc tại đỉnh .
Khi sĩ quan phát đi một mệnh lệnh, mệnh lệnh lan truyền theo đúng thứ tự của một lần duyệt DFS bắt đầu từ : sĩ quan đang giữ mệnh lệnh sẽ chọn cấp dưới trực tiếp có chỉ số nhỏ nhất trong số những người chưa nhận được lệnh, truyền lệnh cho người đó, rồi chờ cho tới khi người đó truyền xong toàn bộ cấp dưới của mình mới chọn người tiếp theo. Khi không còn cấp dưới trực tiếp nào chưa nhận lệnh, sĩ quan kết thúc.
Ví dụ, với cây có , nếu sĩ quan phát lệnh thì thứ tự nhận lệnh là ; nếu sĩ quan phát lệnh thì thứ tự là .
Cho truy vấn, truy vấn thứ gồm cặp . Với mỗi truy vấn, hãy dựng dãy thứ tự nhận lệnh khi sĩ quan phát lệnh và in ra phần tử thứ của dãy đó, hoặc nếu dãy có ít hơn phần tử.
Các truy vấn độc lập với nhau: truy vấn này không ảnh hưởng tới truy vấn khác.
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và : số sĩ quan và số truy vấn.
- Dòng thứ hai chứa số nguyên , trong đó là chỉ số cấp trên trực tiếp của sĩ quan .
- dòng tiếp theo, dòng thứ chứa hai số nguyên và .
Dữ liệu ra
In ra dòng, dòng thứ là đáp án của truy vấn thứ .
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 9 6 1 1 1 3 5 3 5 7 3 1 1 5 3 4 7 3 1 8 1 9 |
3 6 8 -1 9 4 |
Từ thứ tự là nên phần tử thứ là , thứ là , thứ là . Từ thứ tự là , phần tử thứ là và thứ là . Từ chỉ có , không có phần tử thứ nên in . |
| 6 5 1 1 2 2 3 1 4 2 3 3 2 2 4 6 1 |
5 5 6 -1 6 |
Từ thứ tự là nên phần tử thứ là . Từ thứ tự là : phần tử thứ là , còn thứ không tồn tại. Từ thứ tự là nên phần tử thứ là . Sĩ quan không có cấp dưới nên dãy chỉ gồm chính nó. |
Bình luận