为什么贪心错了!!
查看原帖
为什么贪心错了!!
191549
LuZiYun_AK_NOI2023楼主2020/10/6 19:50
#include <bits/stdc++.h>
#define N (1 << 11)
using namespace std;
int n, x, pos, Ans, tot, a[N], b[N];
int main() {
	scanf("%d", &n);
	for (int i = 1; i <= n; ++i) scanf("%d", &a[i]);
	for (int i = 1; i <= n; ++i) scanf("%d", &b[i]);
	sort(a + 1, a + n + 1);
	sort(b + 1, b + n + 1), pos = n;
	for (int i = n; i >= 1; --i, --pos, ++Ans) {
		while (a[i] <= b[pos]) --pos;//找到第一个比a[i]小的。
		if (pos == 0) {//判定和局
			while (b[++pos] == a[i]);
			Ans -= i - pos + 1;
			break;
		}
	}
	printf("%d\n", Ans * 200);
	return 0;
}
2020/10/6 19:50
加载中...