#include <bits/stdc++.h>
using namespace std;
const int nx=2e5+5;
int n, q, a[nx], b[nx], r, h;
struct doll
{
int a, b;
bool operator < (const doll &o) const {return a==o.a?b<o.b:a<o.a;}
doll(int a, int b): a(a), b(b){}
};
vector<doll> v;
int main()
{
cin.tie(NULL)->sync_with_stdio(false);
cin>>n>>q;
for (int i=1; i<=n; i++) cin>>a[i]>>b[i];
while (q--)
{
cin>>r>>h;
v.clear();
for (int i=1; i<=n; i++) if (r<=a[i]&&b[i]<=h) v.push_back(doll(a[i], -b[i]));
sort(v.begin(), v.end());
vector<int> lis;
for (auto x:v)
{
auto itr=upper_bound(lis.begin(), lis.end(), x.b);
if (itr==lis.end()) lis.push_back(x.b);
else *itr=x.b;
}
cout<<lis.size()<<'\n';
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |