Submission #1160398

#TimeUsernameProblemLanguageResultExecution timeMemory
1160398c4c7u5Exhibition (JOI19_ho_t2)C++20
0 / 100
0 ms320 KiB
#include<bits/stdc++.h>
using namespace std;

int n, m, c[200005];
pair<int, int> s[200005];
vector<int> lis;


bool cmp(pair<int, int> x, pair<int, int> y) {
    if(x.first!=y.first) return x.first<y.first;
    return x.second > y.second;
}

int main() {
    ios::sync_with_stdio(0);cin.tie(0);
    cin >> n >> m;
    for(int i=0;i<n;i++) cin >> s[i].second >> s[i].first;
    for(int i=0;i<m;i++) cin >> c[i];
    sort(s, s+n, cmp);
    sort(c, c+m);
    
    lis.push_back(0);
    for(int i=n-1;i>=0;i--) {
        int pos = m - (lower_bound(c, c+m, s[i].second)-c);
        auto it = lower_bound(lis.begin(), lis.end(), pos);
        if(it!=lis.end()) *it = *prev(it)+1;
        else if(*prev(it)<m) lis.push_back(*prev(it)+1);
        for(auto i:lis) cout<<i<<' ';
        cout<<'\n';
    }
    
    cout << lis.size()-1 << '\n';
    
    
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...