func_code_string: #include <bits/stdc++.h>   using namespace std;   void add(long long &a, long long b) {     a += b;     if (a >= (233333333 * 4 + 23333333 * 2 + 2333333 * 8 + 233333 * 5 +               23333 * 7 + 2333 + 233 * 4 + 23 * 3 + 2 + 2 + 2 + 3 + 3 + 3)) {       a -= (233333333 * 4 + 23333333 * 2 + 2333333 * 8 + 233333 * 5 + 23333 * 7 +             2333 + 233 * 4 + 23 * 3 + 2 + 2 + 2 + 3 + 3 + 3);     }   }   struct BitchIsThere {     int N;     pair<long long, long long> dt[500005];     void upd(pair<long long, long long> &a, pair<long long, long long> b) {       if (a.first > b.first) {         a = b;       } else if (a.first == b.first) {         add(a.second, b.second);       }     }     void init(int nn) {       N = nn;       for (int i = 1; i <= nn; i++) {         dt[i] = make_pair(             (233333333 * 4 + 23333333 * 2 + 2333333 * 8 + 233333 * 5 + 23333 * 7 +              2333 + 233 * 4 + 23 * 3 + 2 + 2 + 2 + 3 + 3 + 3),             0);       }     }     void insert(int x, pair<long long, long long> num) {       while (x <= N) {         upd(dt[x], num);         x += x & -x;       }     }     pair<long long, long long> qsum(int x) {       pair<long long, long long> ans =           make_pair((233333333 * 4 + 23333333 * 2 + 2333333 * 8 + 233333 * 5 +                      23333 * 7 + 2333 + 233 * 4 + 23 * 3 + 2 + 2 + 2 + 3 + 3 + 3),                     0);       while (x) {         upd(ans, dt[x]);         x -= x & -x;       }       return ans;     }   } bit;   int n;   vector<pair<long long, long long> > pills;   int main() {     scanf( %d , &n);     vector<int> ds;     ds.push_back(-1);     ds.push_back(0);     for (int i = 0; i < n; i++) {       int x, y;       scanf( %d%d , &x, &y);       pills.push_back(make_pair(y, x));       ds.push_back(x);       ds.push_back(y);     }     sort(ds.begin(), ds.end());     ds.resize(unique(ds.begin(), ds.end()) - ds.begin());     sort(pills.begin(), pills.end());     bit.init(ds.size());     bit.insert(1, make_pair(0, 1));     pair<long long, long long> ans =         make_pair((233333333 * 4 + 23333333 * 2 + 2333333 * 8 + 233333 * 5 +                    23333 * 7 + 2333 + 233 * 4 + 23 * 3 + 2 + 2 + 2 + 3 + 3 + 3),                   0);     for (pair<long long, long long> p : pills) {       int x = lower_bound(ds.begin(), ds.end(), p.first) - ds.begin();       int y = lower_bound(ds.begin(), ds.end(), p.second) - ds.begin();       pair<long long, long long> res = bit.qsum(x);       if (p.second > pills.back().first) {         bit.upd(ans, make_pair(res.first + p.first, res.second));       } else {         bit.insert(y, make_pair(p.first + res.first - p.second, res.second));       }     }     printf( %lld n , ans.second);     return 0;   }   