Ordered Statistic Tree (__gnu_pbds) - YessineJallouli/Competitive-Programming GitHub Wiki

#include<bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;
using namespace std;

typedef tree<int,null_type,less<>,rb_tree_tag,
        tree_order_statistics_node_update> indexed_set;


int main()
{
    indexed_set idx;
    idx.insert(5);
    idx.insert(2);
    idx.insert(6);
    idx.insert(4);

    cout << *idx.find_by_order(0); // 2
    cout << idx.order_of_key(4); // 1

}