func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxn = 100010;   struct Event {     int t, L, R, on;     Event(int t = 0, int L = 0, int R = 0, int on = 0)         : t(t), L(L), R(R), on(on) {}     bool operator<(const Event &rh) const { return t < rh.t; }   } E[maxn * 2];   int V[maxn * 2], cnt;   int Pre[maxn * 2], P[maxn * 2];   long long Ans[maxn];   int ID(int v) {     int L = 1, R = cnt;     while (L < R) {       int mid = (L + R) >> 1;       if (V[mid] < v)         L = mid + 1;       else         R = mid;     }     return L;   }   int main() {     int n, k;     cin >> n >> k;     for (int i = 1; i <= n; i++) {       static int x, y;       scanf( %d%d , &x, &y);       E[2 * i - 1] = Event(x - k + 1, y, y + k - 1, 1);       E[2 * i] = Event(x + 1, y, y + k - 1, -1);       V[++cnt] = y;       V[++cnt] = y + k;     }     sort(V + 1, V + 1 + cnt);     cnt = unique(V + 1, V + 1 + cnt) - V - 1;     sort(E + 1, E + 1 + 2 * n);     for (int i = 1; i <= 2 * n; i++) {       int id = ID(E[i].L);       for (; id < cnt && V[id] <= E[i].R; id++) {         Ans[P[id]] += ((long long)(E[i].t - Pre[id])) * (V[id + 1] - V[id]);         P[id] += E[i].on;         Pre[id] = E[i].t;       }     }     for (int i = 1; i <= n; i++) cout << Ans[i] << (i == n ?   n  :    );     return 0;   }   