SET - Nâng cao
Point: 100.0
Time limit: 1.0s
Memory limit: 250 M
Input:
stdin
Output:
stdout
Author:
Problem type
C - Cấu trúc dữ liệu nâng cao: 05 - Set
Ngôn ngữ cho phép
C#, C++
Cho một tập \(A\), ban đầu tập không có phần tử nào. Chúng ta thực hiện các thao tác sau áp dụng lên tập:
-
\(INSERT\ x\): Thêm giá trị \(x\) vào tập \(A\). Nếu trong tập đã có thì không làm gì.
-
\(DELETE\ x\): Nếu trong tập có phần tử \(x\) thì xóa nó khỏi tập, ngược lại thì không làm gì.
-
\(ASK\ x\): Trả về “Yes” nếu \(x\) có trong \(A\), “No” nếu ngược lại.
- \(L\ x\): Trả về giá trị phần tử lớn nhất bé hơn \(x\), nếu không có thì in ra -1.
- \(G\ x\): Trả về giá trị phần tử nhỏ nhất lớn hơn \(x\), nếu không có thì in ra -1.
Yêu cầu
Cho \(m\) truy vấn thuộc 1 trong 5 dạng trên, trả lời lần lượt các truy vấn dạng 3, 4, 5.
Input
- Dòng đầu chứa số \(m\).
- \(m\) dòng tiếp theo, mỗi dòng chứa 1 loại truy vấn,
Output
- Trả lời các truy vấn loại 3, 4, 5.
Giới hạn
- \(0<m,|x|\leq 100000\)
Sample Input
6
INSERT 5
INSERT 10
DELETE 10
ASK 10
INSERT 3
L 4
Sample Output
No
3