#BST0000006. Successor trong BST (Inorder Successor in a BST)

Successor trong BST (Inorder Successor in a BST)

Successor trong BST (Inorder Successor in a BST)

Nguồn: Phước Hưng OJ

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

Đề bài

Dựng BST từ dãy a1,a2,…,ana_1,a_2,\ldots,a_n theo đúng thứ tự chèn; nếu một khóa đã có trong cây thì lần chèn lặp lại bị bỏ qua.

Cho một khóa xx được bảo đảm tồn tại trong cây. Inorder successor nghiêm ngặt của xx là khóa nhỏ nhất trong BST có giá trị lớn hơn xx.

Hãy tìm inorder successor nghiêm ngặt của xx. Nếu không có khóa nào lớn hơn xx, successor không tồn tại.

Input

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

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

Dòng thứ ba chứa số nguyên xx.

Output

Nếu successor của xx tồn tại, in khóa đó.

Nếu không tồn tại, in NONE.

Subtask

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

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

Subtask 3 (50 điểm): 1≤n≤2000001\le n\le 200000.

Trong tất cả các subtask, aia_i và xx là số nguyên có dấu 64-bit; khóa trùng bị bỏ qua khi dựng cây và xx được bảo đảm thuộc tập khóa còn lại của BST.

Ví dụ

Input

7
8 3 10 1 6 14 4
6

Output

8

Giải thích

Các khóa lớn hơn 66 trong cây là 8,10,148,10,14. Trong số đó, khóa nhỏ nhất là 88. Vì vậy inorder successor nghiêm ngặt của 66 là 88.