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
 KTH(S) : return the kth 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, KTH 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 ≤ 10^{9}. If the parameter is an index k, it is guaranteed that 1 ≤ k ≤ 10^{9}.
Output
For each query, print the corresponding result in a single line. In particular, for the queries KTH, 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
Nguyen Cuong:
20160520 05:06:48
compression + BIT + binary search ~ O(n log^2(n)) got AC ^^ 

ruizhang:
20160519 19:29:43
Spent a day implementing the augmented redblack tree on CLRS, good problem! 

Integralisha:
20160429 00:43:31
Use tree policy [for C++ coders]. 

fnf:
20160427 12:39:01
ios_base:: sync_with_stdio(false); cin.tie(0);


vedang:
20160126 14:55:55
Had to replace cout with printf to get rid of TLE.


minhthai:
20160126 04:49:22
confirmed! I fell in love with BIT <3


GAURAV CHANDEL:
20160113 02:59:36
After solving this , You will fall in love with BIT.... 

dhkhtn:
20151229 22:26:57
C++ 14 (AC) runs a bit faster than C++ 5.1 (TLE). But crazy timelimit makes coding less fun. 1s is quite good. 

NEXES:
20151228 19:48:23
cordination compression+BIT+Binary search!!!!!..........AC


ariel:
20151216 21:02:39
coordinate compresion + segment tree + unordered_map = accepted!

Added by:  Duc 
Date:  20081028 
Time limit:  0.300s 
Source limit:  50000B 
Memory limit:  1536MB 
Cluster:  Cube (Intel G860) 
Languages:  All except: ERL JS NODEJS PERL 6 VB.net 
Resource:  © VNOI 