#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 a1,a2,…,ana_1,a_2,\ldots,a_n 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:

a1a_1 trở thành gốc.

Với mỗi ii từ 22 đến nn, bắt đầu tại gốc. Nếu aia_i nhỏ hơn khóa ở nút hiện tại thì chuyển sang con trái; nếu aia_i 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 aia_i tại vị trí đó và kết thúc lần chèn.

Với mỗi phần tử aia_i 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 nn.

Dòng thứ hai chứa nn số nguyên phân biệt a1,a2,…,ana_1,a_2,\ldots,a_n theo thứ tự chèn.

Output

In trên một dòng n−1n-1 số. Số thứ i−1i-1 là khóa của nút cha của nút mang khóa aia_i, với mọi 2≤i≤n2\le i\le n.

Các số được cách nhau bởi một dấu cách.

Subtask

Subtask 1 (20 điểm): 2≤n≤202\le n\le 20.

Subtask 2 (30 điểm): 2≤n≤50002\le n\le 5000.

Subtask 3 (50 điểm): 2≤n≤1000002\le n\le 100000, 1≤ai≤1091\le a_i\le 10^9.

Trong tất cả các subtask, mọi aia_i phân biệt.

Ví dụ

Input

5
4 2 3 1 6

Output

4 2 2 4

Giải thích

44 là gốc. Khi chèn 22, nó trở thành con trái của 44, nên cha của 22 là 44.

Tiếp theo, 33 đi từ 44 sang trái tới 22 rồi trở thành con phải của 22, nên cha của 33 là 22. Khóa 11 trở thành con trái của 22, còn 66 trở thành con phải của 44.

Vì vậy dãy khóa cha theo thứ tự chèn a2,a3,a4,a5a_2,a_3,a_4,a_5 là 4 2 2 4.