func_code_string: #include <bits/stdc++.h>   using namespace std;   struct que {     int l, r, y, val;     bool operator<(const que &v) const { return y < v.y; }   };   int n, k, x[100010], y[100010], cnt[100010 * 2], pre[100010 * 2];   long long ans[100010];   vector<que> q;   vector<int> h;   int main() {     scanf( %d%d , &n, &k);     for (int i = 1; i <= n; i++) scanf( %d%d , &x[i], &y[i]);     for (int i = 1; i <= 2 * n; i++) pre[i] = -0x3f3f3f3f;     h.push_back(-0x3f3f3f3f);     for (int i = 1; i <= n; i++) {       h.push_back(x[i]);       h.push_back(x[i] + k);     }     sort(h.begin(), h.end());     h.resize(unique(h.begin(), h.end()) - h.begin());     for (int i = 1, l, r; i <= n; i++) {       l = upper_bound(h.begin(), h.end(), x[i]) - h.begin();       r = lower_bound(h.begin(), h.end(), x[i] + k) - h.begin();       q.push_back({l, r, y[i], 1});       q.push_back({l, r, y[i] + k, -1});     }     sort(q.begin(), q.end());     for (auto i : q)       for (int j = i.l; j <= i.r; j++) {         ans[cnt[j]] += 1ll * (h[j] - h[j - 1]) * (i.y - pre[j]);         cnt[j] += i.val;         pre[j] = i.y;       }     for (int i = 1; i <= n; i++) printf( %lld  , ans[i]);     return 0;   }   