func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxn = 100003;   pair<int, int> t[4 * maxn];   int psh[maxn];   void update(int v, int l, int r, int q) {     if (l == r) return void(t[v] = psh[q] ? make_pair(1, 0) : make_pair(0, 1));     int m = (l + r) / 2;     if (q <= m) update(v * 2, l, m, q);     if (q > m) update(v * 2 + 1, m + 1, r, q);     int u = min(t[v * 2].first, t[v * 2 + 1].second);     t[v] = make_pair(t[v * 2].first + t[v * 2 + 1].first - u,                      t[v * 2].second + t[v * 2 + 1].second - u);   }   int get_ans(int v, int l, int r, int c) {     if (!t[v].first) return -1;     if (l == r) return psh[l];     int m = (l + r) / 2;     if (t[v * 2 + 1].first - c > 0)       return get_ans(v * 2 + 1, m + 1, r, c);     else       return get_ans(v * 2, l, m, c - t[v * 2 + 1].first + t[v * 2 + 1].second);   }   int main() {     int n;     scanf( %d , &n);     for (int i = 0; i < n; ++i) {       int q, t, num;       scanf( %d %d , &q, &t);       if (t == 1) {         scanf( %d , &num);         psh[q] = num;       }       update(1, 1, n, q);       printf( %d n , get_ans(1, 1, n, 0));     }     return 0;   }   