[ZJOI2008]泡泡堂

贪心, 最强/最弱的能赢就打,否则自己最弱的打对手最强的。

/**

 * Problem:BNB

 * Author:Shun Yao

 * Time:2013.5.30

 * Result:Accepted

 * Memo:greedy

 */



#include <cstdio>

#include <algorithm>



long n, x[100000], y[100000];



long solve(long A[], long B[]) {

	static long ret, i, j, k, l;

	ret = i = j = 0;

	k = l = n - 1;

	while (i <= k) {

		if (A[i] > B[j]) {

			ret += 2;

			++i;

			++j;

		} else if (A[k] > B[l]) {

			ret += 2;

			--k;

			--l;

		} else {

			ret += A[i] == B[l];

			++i;

			--l;

		}

	}

	return ret;

}



int main() {

	static long i;

	freopen("bnb.in", "r", stdin);

	freopen("bnb.out", "w", stdout);

	scanf("%ld", &n);

	for (i = 0; i < n; ++i)

		scanf("%ld", x + i);

	for (i = 0; i < n; ++i)

		scanf("%ld", y + i);

	std::sort(x, x + n);

	std::sort(y, y + n);

	printf("%ld %ld", solve(x, y), (n << 1) - solve(y, x));

	fclose(stdin);

	fclose(stdout);

	return 0;

}

 

你可能感兴趣的:(2008)