Submit | All submissions | Best solutions | Back to list |
GBITREE - Trò chơi duyệt cây |
Anh Phúc và anh Beo cùng tham gia một trò chơi liên quan đến cây nhị phân. Trong đó, anh Beo có nhiệm vụ xây dựng lại cây nhị phân N đỉnh (được đánh số từ 1 đến N) từ dữ liệu là danh sách duyệt cây theo thứ tự pre-order và in-order còn anh Phúc sẽ in ra danh sách bậc tất cả các đỉnh của cây vừa tìm được.
Tuy nhiên, do anh Beo không biết làm nên anh Phúc cần viết một chương trình thực hiện cả hai việc trên để anh ấy có thời gian xử lý anh Beo. Các bạn giúp anh ấy nhé!
Biết rằng:
Cây nhị phân là cây mà mỗi nút có tối đa 2 con, được gọi là con trái và con phải.
Với cây nhị phân A, ta có các phép duyệt:
- Duyệt theo thứ tự pre-order: thăm gốc A, thăm cây con trái của A, thăm cây con phải của A.
- Duyệt theo thứ tự in-order: thăm cây con trái của A, thăm gốc A, thăm cây con phải của A.
Input
Dòng đầu tiên là số đỉnh N của cây (N <= 100 000).
Dòng thứ hai gồm N số là danh sách duyệt theo thứ tự pre-order.
Dòng thứ ba gồm N số là danh sách duyệt theo thứ tự in-order.
Output
In ra N số là danh sách bậc tất cả các đỉnh của cây theo thứ tự tăng dần của chỉ số đỉnh.
Example
Input: 6 0 4 2 3 5 1 4 0 5 3 2 1 Output: 2 1 3 2 1 1
Added by: | Ha Minh Ngoc |
Date: | 2016-03-16 |
Time limit: | 1s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | CSHARP C++ 4.3.2 CPP CPP14 CPP14-CLANG FSHARP GO JAVA JS-MONKEY NODEJS PHP PYTHON PYPY PYPY3 PYTHON3 RUBY SQLITE SWIFT VB.NET |