-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathordered set.cpp
More file actions
30 lines (21 loc) · 921 Bytes
/
Copy pathordered set.cpp
File metadata and controls
30 lines (21 loc) · 921 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <bits/stdc++.h>
using namespace std ;
#include <ext/pb_ds/assoc_container.hpp> // Common file
#include <ext/pb_ds/tree_policy.hpp> // Including tree_order_statistics_node_update
using namespace __gnu_pbds;
template<class T> using ordered_set = tree<T, null_type , less<T> , rb_tree_tag , tree_order_statistics_node_update> ;
ordered_set<int>s ;
int main()
{
return 0 ;
}
/*
find_by_order(k): It returns to an iterator to the kth element (counting from zero)
Let us assume we have a set s : {1, 5, 6, 17, 88}, then :
*(s.find_by_order(2)) : 3rd element in the set i.e. 6
*(s.find_by_order(4)) : 5th element in the set i.e. 88
order_of_key(k) : number items that are strictly smaller than item k
Let us assume we have a set s : {1, 5, 6, 17, 88}, then :
s.order_of_key(6) : Count of elements strictly smaller than 6 is 2.
s.order_of_key(25) : Count of elements strictly smaller than 25 is 4.
*/