func_code_string: #include <bits/stdc++.h>   using namespace std;   int n, v0, f[200012], nu = 0;   struct eve {     int x, v, l;     inline bool operator<(const eve &b) const {       return (x < b.x) || ((x == b.x) && (v < b.v));     }   };   multiset<eve> s;   inline void cha(int x, int v) {     f[x] = v;     if (v + v0 <= 1e9) s.insert((eve){v + v0, 0, -1});   }   int d[200012 << 2], ma[200012 << 2];   inline void Add(int p, int v) {     d[p] += v;     ma[p] += v;   }   inline void pd(int x) {     if (d[x]) {       Add(x << 1, d[x]);       Add(x << 1 | 1, d[x]);       d[x] = 0;     }   }   void build(int p, int l, int r) {     ma[p] = r;     if (l == r) return;     int mid = (l + r) >> 1;     build(p << 1, l, mid);     build(p << 1 | 1, mid + 1, r);   }   void change(int p, int l, int r, int L, int R, int v) {     if ((R < l) || (r < L)) return;     if ((L <= l) && (r <= R)) {       Add(p, v);       return;     }     pd(p);     int mid = (l + r) >> 1;     change(p << 1, l, mid, L, R, v);     change(p << 1 | 1, mid + 1, r, L, R, v);     ma[p] = max(ma[p << 1], ma[p << 1 | 1]);   }   int Ask(int p, int l, int r, int L, int R) {     if ((R < l) || (r < L)) return 0;     if ((L <= l) && (r <= R)) return ma[p];     pd(p);     int mid = (l + r) >> 1;     return max(Ask(p << 1, l, mid, L, R), Ask(p << 1 | 1, mid + 1, r, L, R));   }   int main() {     scanf( %d%d , &n, &v0);     int i, l, r, x, o;     eve p;     memset(f, 0x3f, sizeof(f));     build(1, 0, n);     for (i = 1; i <= n; i++) {       scanf( %d%d , &l, &r);       if (r < 0) continue;       l = max(l, 0);       s.insert((eve){l, 1, l});       s.insert((eve){r + 1, -1, l});     }     cha(r = 0, -0x3f3f3f3f);     while (!s.empty()) {       p = *s.begin();       nu += p.v;       l = p.x;       s.erase(s.begin());       if (p.l >= 0) change(1, 0, n, lower_bound(f, f + n + 1, p.l) - f, n, -p.v);       if ((!s.empty()) && ((s.begin()->x) == l)) continue;       x = upper_bound(f, f + n + 1, l - v0) - f - 1;       o = nu + Ask(1, 0, n, 0, x);       while ((r < n) && (r < o)) cha(++r, l);     }     printf( %d , r);     return 0;   }   