找重叠区间--差分秒了
#include <bits/stdc++.h>
using namespace std;
const int N=3e5+10;
int b[N]={0};
void insert(int l,int r,int c){
b[l]+=c;
b[r+1]-=c;
}
int main(){
int n,m,k;
cin>>n>>m>>k;
int t,c;
while(n--){
cin>>t>>c;
int l=max(t-c+1,0);
int r=t;
insert(l,r,1);
}
for(int i=1;i<=N;i++){
b[i]+= b[i-1];
}
while(m--){
int q;
cin>>q;
cout<<b[q+k]<<endl;
}
}