#BST0000024. Dựng cây (Tree Construction)
Dựng cây (Tree Construction)
Dựng cây (Tree Construction)
Nguồn: Codeforces
Phiên bản: Phước Hưng OJ Extended
Đề bài
Cho dãy gồm các số nguyên phân biệt. Dãy được dùng để dựng một cây tìm kiếm nhị phân theo đúng thứ tự sau:
trở thành gốc.
Với mỗi từ đến , bắt đầu tại gốc. Nếu nhỏ hơn khóa ở nút hiện tại thì chuyển sang con trái; nếu lớn hơn thì chuyển sang con phải. Nếu nhánh cần chuyển tới đang rỗng, tạo nút mới mang khóa tại vị trí đó và kết thúc lần chèn.
Với mỗi phần tử từ phần tử thứ hai trở đi, hãy xác định khóa nằm trong nút cha trực tiếp của nút vừa được tạo.
Input
Dòng đầu chứa số nguyên .
Dòng thứ hai chứa số nguyên phân biệt theo thứ tự chèn.
Output
In trên một dòng số. Số thứ là khóa của nút cha của nút mang khóa , với mọi .
Các số được cách nhau bởi một dấu cách.
Subtask
Subtask 1 (20 điểm): .
Subtask 2 (30 điểm): .
Subtask 3 (50 điểm): , .
Trong tất cả các subtask, mọi phân biệt.
Ví dụ
Input
5
4 2 3 1 6
Output
4 2 2 4
Giải thích
là gốc. Khi chèn , nó trở thành con trái của , nên cha của là .
Tiếp theo, đi từ sang trái tới rồi trở thành con phải của , nên cha của là . Khóa trở thành con trái của , còn trở thành con phải của .
Vì vậy dãy khóa cha theo thứ tự chèn là 4 2 2 4.