Papyrus在审判你 • 1个月前
#include <bits/stdc++.h>
using namespace std;
struct planein {
int ccome;
int cleave;
};
struct planeout {
int ocome;
int oleave;
};
bool rule1(planein a, planein b) {
return a.ccome < b.ccome;
}
bool rule2(planeout a, planeout b) {
return a.ocome < b.ocome;
}
int main() {
int n;
cin >> n;
int c, outc;
cin >> c >> outc;
planein a[c];
planeout b[outc];
for (int i = 0; i < c; i++) {
int f, t;
cin >> f >> t;
a[i].ccome = f;
a[i].cleave = t;
}
for (int i = 0; i < outc; i++) {
int f, t;
cin >> f >> t;
b[i].ocome = f;
b[i].oleave = t;
}
sort(a, a + c, rule1);
sort(b, b + outc, rule2);
int max = 0;
for (int i = 0; i <= n; i++) {
int guo = i;
int wai = n - i;
int sum = 0;
if (guo != 0) {
int lang[guo] = {0};
for (int j = 0; j < c; j++) {
if (j < guo) {
lang[j] = a[j].cleave;
sum++;
} else {
for (int l = 0; l < guo; l++) {
if (a[j].ccome > lang[l]) {
lang[l] = a[j].cleave;
sum++;
break;
}
}
}
}
}
if (wai != 0) {
int wlang[wai] = {0};
for (int k = 0; k < outc; k++) {
if (k < wai) {
wlang[k] = b[k].oleave;
sum++;
} else {
for (int m = 0; m < wai; m++) {
if (b[k].ocome > wlang[m]) {
wlang[m] = b[k].oleave;
sum++;
break;
}
}
}
}
}
if (sum > max) {
max = sum;
}
}
cout << max;
return 0;
}
评论:
请先登录,才能进行评论