暴力报0求助QAQ
查看原帖
暴力报0求助QAQ
535447
Radia楼主2021/10/25 17:59
#include <bits/stdc++.h>
#define MAXM 1000005
using namespace std;
struct AIRPORT {
	int a, b;
}f1[MAXM], f2[MAXM];
inline bool cmp(AIRPORT a, AIRPORT b) {
	return a.a < b.a;
}
int n, m1, m2, ans = -1, d1[MAXM], d2[MAXM], top1, top2;
int main() {
	cin >> n >> m1 >> m2;
	for(int i = 1; i <= m1; i++)
		cin >> f1[i].a >> f1[i].b;
	for(int i = 1; i <= m2; i++)
		cin >> f2[i].a >> f2[i].b;
	sort(f1, f1 + m1, cmp);
	sort(f2, f2 + m2, cmp);
	for(int i = 1; i <= n; i++) {
		int num = 0, t = 0;
		for(int j = 1; j <= m1; j++) {
			if(f1[j].a < t)
				continue;
			t = f1[j].b;
			f1[j].a = -1;
			f1[j].b = -1;
			num++;
		}
		d1[++top1] = d1[top1-1] + num;
	}
	for(int i = 1; i <= n; i++) {
		int num = 0, t = 0;
		for(int j = 1; j <= m1; j++) {
			if(f2[j].a < t)
				continue;
			t = f2[j].b;
			f2[j].a = -1;
			f2[j].b = -1;
			num++;
		}
		d2[++top2] = d2[top2-1] + num;
	}
	for(int i = 0; i <= n; i++)
		ans = max(ans, d1[i] + d2[n-i]);
	cout << ans;
	return 0;
}
2021/10/25 17:59
加载中...