Advertisement
Guest User

Untitled

a guest
Jul 1st, 2015
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.09 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #include <ext/pb_ds/assoc_container.hpp>
  3. #include <ext/pb_ds/tree_policy.hpp>
  4. #include <ext/pb_ds/detail/standard_policies.hpp>
  5. #ifdef __mr__
  6. #include "prettyprint.hpp"
  7. #endif
  8. #define endl ('\n')
  9. using namespace __gnu_pbds;
  10. using namespace std;
  11.  
  12. template<typename T>
  13. using orderset = tree<
  14. T, null_type, less<T>, rb_tree_tag,
  15. tree_order_statistics_node_update>;
  16.  
  17. int main() {
  18. ios::sync_with_stdio(0);cin.tie(0);
  19. int32_t q;
  20. cin >> q;
  21. orderset<int32_t> os;
  22. while(q--) {
  23. char op;
  24. int32_t k;
  25. cin >> op >> k;
  26. switch(op) {
  27. case 'I':
  28. os.insert(k);
  29. break;
  30. case 'D':
  31. os.erase(k);
  32. break;
  33. case 'K':
  34. if (k > os.size())
  35. cout << "invalid" << endl;
  36. else
  37. cout << *os.find_by_order(k - 1) << endl;
  38. break;
  39. case 'C':
  40. cout << os.order_of_key(k) << endl;
  41. break;
  42. }
  43. }
  44. return 0;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement