#include <iostream>
using namespace std;
const int N = 2e5 + 10;
int n, m, k;
int b[N];
int main(){
cin >> n >> m >> k;
for(int i = 0; i < n; i++){
int t, c;
cin >> t >> c;
int l = t - k - c + 1, r = t - k;
if(r > 0){
l = max(1, l);
r = max(1, r);
b[l]++, b[r+1]--;
}
}
for(int i = 0; i < N; i++)
b[i] += b[i-1];
while(m--){
int q;
cin >> q;
cout << b[q] << endl;
}
return 0;
}
第一次暴力就70分,肯定知道得用算法,不过不知道要用差分。。。
还是练太少了,看了y总讲解清晰得一比