#include<iostream>
using namespace std;
const int N = 3e5 + 10; // 数组下标不能够为负
// int a[N]; // 都是0哇
int S[N];
int n,m,k;
// int t[N],c[N]; // 用来之后构造 l和r
int t,c;
int l,r;
int q;
int main()
{
cin >> n >> m >> k;
for(int i=0;i < n;i++)
{
cin >> t >> c;
l = t - k - (c - 1);
r = t - k;
if (r == 0 || r < 0) continue; // 之前没有考虑下界
if (l < 0)
{
S[0] += 1;
}
else
{
S[l] += 1;
}
S[r+1] -= 1;
}
for(int i=0;i < N;i++)
{
S[i] += S[i-1];
// cout << S[i] << " ";
}
while(m--)
{
cin >> q;
cout << S[q] << endl;
}
return 0;
}
csp202203-2 出行计划
最新推荐文章于 2025-05-19 12:41:13 发布