- 区间修改,单点查询
- a[i]表示点
i
被包含在a[i]个区间里 - 注意检查区间左端是否小于0,防止数组越界
#include<bits/stdc++.h>
using namespace std;
const int N=3e5+10;
int n,m,k;
int a[N];
int main()
{
cin>>n>>m>>k;
for(int i=1;i<=n;i++)
{
int t,c;
scanf("%d%d",&t,&c);
a[t-c+1<0?0:t-c+1]++;
a[t+1]--;
}
for(int i=1;i<=N;i++) a[i]+=a[i-1];
int cnt=1;
for(int i=1;i<=m;i++)
{
int q;
scanf("%d",&q);
q+=k;
printf("%d\n",a[q]);
}
return 0;
}