Duyệt cây nhị phân

Xem dạng PDF

Gửi bài giải


Điểm: 0,43 (OI)
Giới hạn thời gian: 0.38s
Giới hạn bộ nhớ: 512M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Cây nhị phân là cây mà mỗi nút có tối đa ~2~ con, thường được gọi là con trái và con phải. ~3~ phép duyệt cây nhị phân thông thường là tiền thứ tự (preorder), trung thứ tự (inorder) và hậu thứ tự (postorder):

  • Duyệt tiền thứ tự cây gốc ~A~: 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 trung thứ tự cây gốc ~A~: 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~.
  • Duyệt hậu thứ tự cây gốc ~A~: thăm cây con trái của ~A~, thăm cây con phải của ~A~, thăm gốc ~A~.

Cho danh sách duyệt tiền thứ tự và trung thứ tự của ~1~ cây nhị phân ~N~ đỉnh, các đỉnh được đánh số từ ~1~ đến ~N~.

Yêu cầu hãy xây dựng lại cây và in ra danh sách duyệt hậu thứ tự.

Input

  • Dòng đầu ghi số ~N~ là số đỉnh ~(N \le 50 000~, ~40\%~ số test ~N \le 1000)~.
  • Dòng thứ hai ghi ~N~ số là danh sách duyệt preorder.
  • Dòng thứ ba ghi ~N~ số là danh sách duyệt inorder.

Output

  • In ra ~N~ số là danh sách duyệt postorder của cây.

Sample Input

6
1 5 3 4 6 2
5 1 4 6 3 2

Sample Output

5 6 4 2 3 1

Note

image

Tham khảo thêm tạiđây


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.