爆0求教
查看原帖
爆0求教
1071898
YJY_NEVER_TLE楼主2024/9/16 23:25
#include<bits/stdc++.h>
using namespace std;
int a[100005], b[100005];
int f(int a[], int b[], int n) {
	int ans = 0;
	int tn = 1, tx = n, kn = 1, kx = n;
	for (int i = 1; i <= n; i++) {
		if (a[tn] > b[kn]) {
			ans += 2;
			tn++;
			kn++;
		} else {
			if (a[tx] < b[kx]) {
				tx--;
				kn++;
			} else {
				if (a[tx] > b[kx]) {
					ans += 2;
					tx--;
					kx--;
				} else {
					ans++;
					tx--;
					kn++;
				}
			}
		}
	}
	return ans;
}
int f1(int a[], int b[], int n) {
	int ans = 0;
	int tn = 1, tx = n, kn = 1, kx = n;
	for (int i = 1; i <= n; i++) {
		if (a[tn] > b[kn]) {
			tn++;
			kn++;
		} else {
			if (a[tx] < b[kx]) {
				ans += 2;
				tx--;
				kn++;
			} else {
				if (a[tx] > b[kx]) {
					tx--;
					kx--;
				} else {
					ans++;
					tx--;
					kn++;
				}
			}
		}
	}
	return ans;
}
int main() {
	int n;
	cin >> n;
	for (int i = 1; i <= n; i++) {
		cin >> a[i];
	}
	for (int i = 1; i <= n; i++) {
		cin >> b[i];
	}
	sort(a + 1, a + 1 + n, greater<int>());
	sort(b + 1, b + 1 + n, greater<int>());
	cout << f(a, b, n) << " " << f1(b, a, n);
	return 0;
}

\

2024/9/16 23:25
加载中...