Submission #1221388

#TimeUsernameProblemLanguageResultExecution timeMemory
122138812345678Matryoshka (JOI16_matryoshka)C++20
51 / 100
2093 ms4128 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...