Submission #1256487

#TimeUsernameProblemLanguageResultExecution timeMemory
1256487nguyenphong233Exhibition (JOI19_ho_t2)C++20
100 / 100
36 ms1608 KiB
// 23 - 12 - 23 

#include<bits/stdc++.h>

using namespace std;

#define read() ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)
#define day() time_t now = time(0);char* x = ctime(&now);cerr<<"Right Now Is : "<<x<<"\n"

#define ii pair<int,int>
#define X first
#define Y second 

const long long MAX = (int)1e5 + 5;
const long long INF = (int)1e9;
const long long MOD = (int)1e9 + 7;

int n,m;
ii a[MAX];
int c[MAX];
bool check(int len){
	int j = m - len + 1;
	for(int i = 1;i <= n;i++){
		if(a[i].Y > c[j])continue;
		j++;
	}
	return j > m;
}
signed main(){
	
	read();
	
	cin >> n >> m;
	for(int i = 1;i <= n;i++){
		cin >> a[i].Y >> a[i].X;
	}	
	for(int i = 1;i <= m;i++)cin >> c[i];
	sort(a + 1,a + 1 + n);
	sort(c + 1,c + 1 + m);
	
	int l = 1,r = m;
	int ans = 0;
	while(l <= r){
		int mid = l + r >> 1;
		if(check(mid)){
			ans = mid;
			l = mid + 1;
		}else r = mid - 1;
	}
	
	cout << ans;
}






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