Untitled
#include <iostream> #include <ext/pb_ds/assoc_container.hpp> using namespace std; using namespace __gnu_pbds; tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> s; int main() { int n, val; cin >> n; for (int i = 1; i <= n; ++i) s.insert(i); for (int i = 1; i <= n; ++i) { cin >> val; cin >> val; if (val == -1) { cout << *s.rbegin() << " "; s.erase(*s.rbegin()); } else { auto it = s.find_by_order(val - i - 1); cout << *it << " "; s.erase(it); } } }
Leave a Comment