func_code_string: #include <bits/stdc++.h>   using namespace std;   class ReverseBit {    public:     ReverseBit(int size) : bit_(size + 1, 0) {}     void Add(int pos, int num);     int GetMax(int pos) const;       private:     static int Lsb(int num) { return num & -num; }     vector<int> bit_;   };   void ReverseBit::Add(int pos, int num) {     pos = bit_.size() - pos;     while (pos < (int)bit_.size()) {       bit_[pos] = max(bit_[pos], num);       pos += Lsb(pos);     }   }   int ReverseBit::GetMax(int pos) const {     pos = bit_.size() - pos;     int res = 0;     while (pos > 0) {       res = max(res, bit_[pos]);       pos -= Lsb(pos);     }     return res;   }   struct Receipt {     int sum;     int time;   };   int main() {     int n;     cin >> n;     vector<Receipt> last_receipts(n);     for (auto &r : last_receipts) {       cin >> r.sum;       r.time = 0;     }     int updates;     cin >> updates;     ReverseBit bit(updates + 2);     for (int i = 1; i <= updates; i += 1) {       int type;       cin >> type;       if (type == 1) {         int id, sum;         cin >> id >> sum;         last_receipts[id - 1] = Receipt{.sum = sum, .time = i};       } else {         int sum;         cin >> sum;         bit.Add(i, sum);       }     }     for (const auto &r : last_receipts) {       cout << max(r.sum, bit.GetMax(r.time + 1)) <<    ;     }     cout <<   n ;     return 0;   }   