#BST0000020. Tổ tiên chung gần nhất trong BST (Lowest Common Ancestor of a Binary Search Tree)

Tổ tiên chung gần nhất trong BST (Lowest Common Ancestor of a Binary Search Tree)

Tổ tiên chung gần nhất trong BST (Lowest Common Ancestor of a Binary Search Tree)

Nguồn: LeetCode

Phiên bản: Phước Hưng OJ Extended

Đề bài

Dựng BST từ nn khóa phân biệt a1,a2,…,ana_1,a_2,\ldots,a_n theo đúng thứ tự chèn.

Cho hai khóa khác nhau pp và qq, cả hai đều tồn tại trong cây. Một nút uu là tổ tiên chung của pp và qq nếu cả hai nút mang khóa pp và qq đều nằm trong cây con gốc tại uu. Theo quy ước, một nút được xem là hậu duệ của chính nó.

Tổ tiên chung gần nhất (Lowest Common Ancestor - LCA) là tổ tiên chung có độ sâu lớn nhất, tức nằm thấp nhất trong cây.

Hãy in khóa của LCA của hai nút mang khóa pp và qq.

Input

Dòng đầu chứa số nguyên nn.

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

Dòng thứ ba chứa hai khóa pp và qq.

Output

In một số nguyên là khóa của tổ tiên chung gần nhất của pp và qq.

Subtask

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

Subtask 2 (30 điểm): 2≤n≤5002\le n\le 500.

Subtask 3 (50 điểm): 2≤n≤1052\le n\le 10^5.

Trong tất cả các subtask, −109≤ai,p,q≤109-10^9\le a_i,p,q\le 10^9; các aia_i phân biệt; p≠qp\ne q và cả p,qp,q đều xuất hiện trong cây.

Ví dụ

Input

9
6 2 8 0 4 7 9 3 5
2 8

Output

6

Giải thích

Nút mang khóa 22 nằm trong cây con trái của gốc 66, còn nút mang khóa 88 nằm trong cây con phải. Vì vậy không có nút nào nằm thấp hơn 66 mà vẫn chứa cả hai nút trong cây con của nó.

Do đó LCA của 22 và 88 có khóa 66.