100分hack数据求调
查看原帖
100分hack数据求调
637788
kimi0705楼主2023/10/2 16:20
#include <bits/stdc++.h>
using namespace std;
int n, m1, m2, ans, M[100005], M2[100005], cnt1, cnt2;
int Cnt1[100005], Cnt2[100005];
struct Air{
    int l, r;
}Arr[100005];
bool cmp(Air a, Air b) {return a.l < b.l;}
int main() {
	scanf("%d%d%d", &n, &m1, &m2);
	for (int i(1); (i - 1) ^ m1; ++i)  scanf("%d%d", &Arr[i].l, &Arr[i].r);
    sort(Arr + 1, Arr + m1 + 1, cmp);
    for (int i(1); (i - 1) ^  m1; ++i) {
        int val = m1 + 1;
		for (int j = 1; (j - 1) ^ cnt1; j++) 
            if(M[j] <= Arr[i].l) {
                val = j;
                break;
            } 
		if (val ^ (m1 + 1)) M[val] = Arr[i].r, ++Cnt1[val];
		else M[++cnt1] = Arr[i].r, ++Cnt1[cnt1];
	}
    for (int i(1); (i - 1) ^ m2; ++i)  scanf("%d%d", &Arr[i].l, &Arr[i].r);
    sort(Arr + 1, Arr + m2 + 1, cmp);
    for (int i(1); (i - 1) ^ m2; ++i) {
        int val = m2 + 1;
		for (int j = 1; (j - 1) ^ cnt2; j++) 
            if(M2[j] <= Arr[i].l) {
                val = j;
                break;
            } 
		if (val ^ (m2 + 1)) M2[val] = Arr[i].r, ++Cnt2[val];
		else M2[++cnt2] = Arr[i].r, ++Cnt2[cnt2];
	}
	for (int i(1); (i - 1) ^ n; ++i) Cnt1[i] += Cnt1[i - 1];
	for (int i(1); (i - 1) ^ n; ++i) Cnt2[i] += Cnt2[i - 1];
	for (int i(0); (i - 1) ^ n; ++i) ans = max(ans, Cnt1[i] + Cnt2[n - i]);
	printf("%d", ans);
}
2023/10/2 16:20
加载中...