Submission #1165138

#TimeUsernameProblemLanguageResultExecution timeMemory
1165138altern23Exhibition (JOI19_ho_t2)C++20
0 / 100
0 ms324 KiB
#include <bits/stdc++.h>
using namespace std;
 
#define ll long long
#define pii pair<ll, ll>
#define fi first
#define sec second
#define ld long double

const ll N = 3e5;
const ll INF = 4e18;
const ll MOD = 1e9 + 7;

int main(){
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    int tc = 1;
    // cin >> tc;
    for(;tc--;){
        ll n, m; cin >> n >> m;
        vector<pii> a(n + 5);
        for(int i = 1; i <= n; i++){
            cin >> a[i].fi >> a[i].sec;
        }
        sort(a.begin() + 1, a.begin() + 1 + n, [&](pii a, pii b){
            return a.sec < b.sec;
        });

        vector<ll> c(m + 5);
        for(int i = 1; i <= m; i++){
            cin >> c[i];
        }
        sort(c.begin() + 1, c.begin() + 1 + m, greater<ll>());
        
        ll l = 1, r = min(n, m), ans = 0;
        for(;l <= r;){
            ll mid = (l + r) / 2;
            ll cur = mid;
            for(int i = 1; i <= n && cur >= 1;){
                while(cur <= mid && i <= n && a[i].fi > c[cur]){
                    i++;
                }
                if(i > n) break;
                cur--, i++;
            }
            if(!cur){
                ans = mid;
                l = mid + 1;
            }
            else r = mid - 1;
        }

        cout << ans << "\n";
    }
}

/*

*/ 
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...