#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pii pair<int, int>
#define max(a, b) ((a)>(b)?(a):(b))
#define min(a, b) (a<b?a:b)
#define rep(i, a, b) for(register int i = a;i <= b;i++)
const int Max = 2e5+5;
int n, w, q, sum[Max], t[Max];
vector<vector<pii> > a(Max);
bool cmp(pii l, pii r){return l.first < r.first;}
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
memset(t, 127, sizeof(t));
cin >> n >> w;
rep(i, 1, n)
{
int x, y;
cin >> x >> y;
a[x].push_back(make_pair(y, i));
}
int mins = 0x3f3f3f3f;
rep(i, 1, w)
{
sum[i] = a[i].size();
mins = min(mins, sum[i]);
}
rep(i, 0, mins-1)
{
if(i == 0)
{
int maxn = -0x3f3f3f3f;
rep(j, 1, w)
maxn = max(a[j][i].first, maxn);
rep(j, 1, w)
t[a[j][i].second] = maxn;
}
else
{
int maxd = -0x3f3f3f3f, base = t[a[1][i-1].second];
rep(j, 1, w)
maxd = max(a[j][i].first-a[j][i-1].first, maxd);
rep(j, 1, w)
t[a[j][i].second] = base+maxd;
}
}
cin >> q;
while(q--)
{
int ti, ai;
cin >> ti >> ai;
if(ti >= t[ai])cout << "No\n";
else cout << "Yes\n";
}
return 0;
}
能过样例。
你没发现吗是1145个字节