## ORDERSET - Order statistic set

 English Vietnamese

In this problem, you have to maintain a dynamic set of numbers which support the two fundamental operations

• INSERT(S,x): if x is not in S, insert x into S
• DELETE(S,x): if x is in S, delete x from S

and the two type of queries

• K-TH(S) : return the k-th smallest element of S
• COUNT(S,x): return the number of elements of S smaller than x

### Input

• Line 1: Q (1 ≤ Q ≤ 200000), the number of operations
• In the next Q lines, the first token of each line is a character I, D, K or C meaning that the corresponding operation is INSERT, DELETE, K-TH or COUNT, respectively, following by a whitespace and an integer which is the parameter for that operation.

If the parameter is a value x, it is guaranteed that 0 ≤ |x| ≤ 109. If the parameter is an index k, it is guaranteed that 1 ≤ k ≤ 109.

### Output

For each query, print the corresponding result in a single line. In particular, for the queries K-TH, if k is larger than the number of elements in S, print the word 'invalid'.

### Example

```Input
8
I -1
I -1
I 2
C 0
K 2
D -1
K 1
K 2

Output
1
2
2
invalid
```

hide comments
 < Previous 1 2 3 4 5 Next > hitman007: 2018-01-21 20:22:58 Any Java programmer here who got it accepted ? I am hearing only c++programs. In Java, even with Compression + BIT + Binary search + Fast I/O, I am getting TLE after test case #6. hitman007: 2018-01-21 16:58:07 Implemented with BIT. But constantly getting WA after test case #5. Any hint ? be1035016: 2017-12-29 16:57:27 map with bit->0.56sec unordered_map with bit->0.45sec pranavraj219: 2017-12-13 22:51:51 BIT - 0.35s SEGTREE - 0.75s Regular map did not give TLE but still its better to use unordered_map. sarwar__05: 2017-12-10 00:08:14 TLE with std::map, AC with std::unordered_map amulyagaur: 2017-10-20 07:06:57 Direct implementation of policy based data structures in C++ shubham_7616: 2017-08-17 22:08:43 Just loved it......Learned a lot !! Nice application of BIT. For those getting TLE use unordered map instead of map and use scanf printf . starbot: 2017-08-17 20:19:00 Amazing problem...learnt a lot...time to play cs fz0718: 2017-07-25 04:34:21 The four magic lines of code... :) #include #include using namespace __gnu_pbds; typedef tree, rb_tree_tag, tree_order_statistics_node_update> ordered_set; akt_1998: 2017-07-03 11:29:26 Must do question for beginners in BIT

 Added by: Duc Date: 2008-10-28 Time limit: 0.300s Source limit: 50000B Memory limit: 1536MB Cluster: Cube (Intel G860) Languages: All except: ERL JS-RHINO NODEJS PERL6 VB.NET Resource: © VNOI