This documentation is automatically generated by online-judge-tools/verification-helper
View the Project on GitHub ngthanhtrung23/ACM_Notebook_new
#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; // for multiset, change less -> less_equal typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set; int main() { ordered_set X; // X = {1, 2, 4, 8, 16} for(int i = 1; i <= 16; i *= 2) X.insert(i); cout << *X.find_by_order(0) << endl; // 1 cout << *X.find_by_order(1) << endl; // 2 cout << *X.find_by_order(2) << endl; // 4 cout << *X.find_by_order(4) << endl; // 16 cout << (X.end()==X.find_by_order(6)) << endl; // true cout<<X.order_of_key(-5)<<endl; // 0 cout<<X.order_of_key(1)<<endl; // 0 cout<<X.order_of_key(3)<<endl; // 2 cout<<X.order_of_key(4)<<endl; // 2 cout<<X.order_of_key(400)<<endl; // 5 }
#line 1 "DataStructure/STL/order_statistic.cpp" #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; // for multiset, change less -> less_equal typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set; int main() { ordered_set X; // X = {1, 2, 4, 8, 16} for(int i = 1; i <= 16; i *= 2) X.insert(i); cout << *X.find_by_order(0) << endl; // 1 cout << *X.find_by_order(1) << endl; // 2 cout << *X.find_by_order(2) << endl; // 4 cout << *X.find_by_order(4) << endl; // 16 cout << (X.end()==X.find_by_order(6)) << endl; // true cout<<X.order_of_key(-5)<<endl; // 0 cout<<X.order_of_key(1)<<endl; // 0 cout<<X.order_of_key(3)<<endl; // 2 cout<<X.order_of_key(4)<<endl; // 2 cout<<X.order_of_key(400)<<endl; // 5 }