利用差分
#include<bits/stdc++.h>
using namespace std;
int n, m, k;
int a[200002] = { 0 };
int main() {
cin >> n >> m >> k;
int i,t,c;
for (i = 0; i < n; i++) {
cin >> t >> c;
int x, y;
x = max(0, t - k - c + 1);
y = max(0, t - k);
a[x]++;
a[y + 1]--;
}
for (i = 1; i < 200002; i++) {
a[i] += a[i - 1];
}
for (i = 0; i < m; i++) {
int q;
cin >> q;
cout << a[q] << endl;
}
}