Submission #1317753

#TimeUsernameProblemLanguageResultExecution timeMemory
1317753JuanJLExhibition (JOI19_ho_t2)C++20
100 / 100
109 ms4320 KiB
#include <bits/stdc++.h>

#define fst first
#define snd second
#define pb push_back
#define forn(i,a,b) for(int i = a; i<b; i++)
#define SZ(x) (int)x.size()
#define ALL(x) x.begin(),x.end()
#define mset(a,v) memset(a,v,sizeof(a))
using namespace std;
typedef long long ll;

int main(){
	ll n,m; cin>>n>>m;
	vector<ll> s(n); 
	vector<ll> v(n);
	vector<ll> c(m); 

	vector<pair<ll,ll>> pi(n);

	forn(i,0,n) cin>>s[i]>>v[i], pi[i]={v[i],s[i]};

	forn(i,0,m) cin>>c[i];

	sort(ALL(c));
	sort(ALL(pi));

	ll l = 1; ll r = SZ(c);
	while(l<=r){
		ll mid = (l+r)/2;

		ll cnt = 0;
		ll j=SZ(c)-mid;
		ll i=0;
		while(j<SZ(c) && i<SZ(pi)){
			if(pi[i].snd<=c[j]){
				cnt++;
				i++;
				j++;
			}else{
				i++;
			}
		}
		if(cnt<mid){
			r=mid-1;
		}else l=mid+1;
	}
	cout<<r<<'\n';
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...