ORDERSET - Order statistic set
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
- 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.
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'.
Input 8 I -1 I -1 I 2 C 0 K 2 D -1 K 1 K 2 Output 1 2 2 invalid
@man_of_silence, it is 0<=|x|<=10^9.
isn't 0 <= x, misleading? Because in the above test cases x is negative.
Policy Based Data Structures are so OP lul
AC in one go ,,,,,use of BIT and binary search and cordinate compression!!!!Last edit: 2018-08-11 09:31:31
Can anyone explain how to get under 0.5 s i have 0.84s and have been using AVL no optimizations . Thanks in advance
@Duc Plz check my solution #id 21882541.Getting WA after 5th test case.Is it due to getchar()?
refer this.. for policy based data structures in C++
Solved using Treaps
Why is the time limit so strict ? Tried everything , unordered_map,changes long long to int,but to no avail still a tle. Approach segment tree after compression.Each query in O(logn*logn)Last edit: 2018-04-27 19:47:21