func_code_string: #include <bits/stdc++.h>   using namespace std;   set<pair<pair<long long int, long long int>, long long int> > ev;   vector<long long int> cnt, len;   multiset<pair<long long int, long long int> > flug;   void expand(       set<pair<pair<long long int, long long int>, long long int> >::iterator it,       long long int a) {     pair<pair<long long int, long long int>, long long int> p = *it;     p.first.first += a;     cnt[p.second]++, len[p.second] += a;     auto nt = ev.insert(p).first;     ev.erase(it, nt);     auto ft = flug.upper_bound(make_pair(p.first.first, 1e18));     if (ft == flug.begin()) return;     ft--;     if (ft->first >= -p.first.second) {       long long int add = ft->second;       flug.erase(ft);       expand(nt, add);     }   }   int main() {     int n, m;     scanf( %d%d , &n, &m);     vector<pair<pair<long long int, long long int>, long long int> > g(n), f(m);     cnt = len = vector<long long int>(n, 0);     for (int((i)) = (0); ((i)) < ((n)); ((i))++) {       int x, sz;       scanf( %d%d , &x, &sz);       g[i] = make_pair(make_pair((x), (sz)), (i));       len[i] = sz;     }     for (int((i)) = (0); ((i)) < ((m)); ((i))++) {       int x, sz;       scanf( %d%d , &x, &sz);       f[i] = make_pair(make_pair((x), (sz)), (i));     }     sort((g).begin(), (g).end());     reverse((g).begin(), (g).end());     for (int((i)) = (0); ((i)) < ((n)); ((i))++) {       auto it =           ev.insert(make_pair(make_pair((g[i].first.first + g[i].first.second),                                         (-g[i].first.first)),                               (g[i].second)))               .first;       ev.erase(ev.begin(), it);     }     for (int((i)) = (0); ((i)) < ((m)); ((i))++) {       pair<pair<long long int, long long int>, long long int> fp =           make_pair(make_pair((f[i].first.first), (-1e18)), (0));       auto it = ev.lower_bound(fp);       if (it != ev.end() && -it->first.second <= f[i].first.first)         expand(it, f[i].first.second);       else         flug.insert({f[i].first.first, f[i].first.second});     }     for (int((i)) = (0); ((i)) < ((n)); ((i))++)       printf( %I64d %I64d n , cnt[i], len[i]);   }   