提高+/省选-
题目原文请移步下面的链接
OI
、贪心
提高+/省选-
#include <bits/stdc++.h>
using namespace std;
#define endl '\n';
int score(vector<int> t, vector<int> k, int n) {
int rt, rk, lt, lk;
int ans = 0;
rt = n - 1;
rk = n - 1;
lk = 0;
lt = 0;
for (int i = 0; i < n; ++i) {
if (t[lt] > k[lk]) {
ans += 2;
++lt;
++lk;
} else if (t[rt] > k[rk]) {
--rt;
--rk;
ans += 2;
} else if (t[rt] < k[lk]) {
--rt;
++lk;
} else if (t[rt] == k[lk]) {
ans += 1;
--rt;
++lk;
}
}
return ans;
}
void best_coder() {
int n;
cin >> n;
vector<int> k(n);
vector<int> t(n);
for (int i = 0; i < n; ++i) {
cin >> t[i];
}
for (int i = 0; i < n; ++i) {
cin >> k[i];
}
sort(t.begin(), t.end(), greater<int>());
sort(k.begin(), k.end(), greater<int>());
cout << score(t, k, n) << " " << 2 * n - score(k, t, n);
}
void happy_coder() {
}
int main() {
// // 提升cin、cout效率
// ios::sync_with_stdio(false);
// cin.tie(nullptr);
// cout.tie(nullptr);
// 小码匠
best_coder();
// 最优解
// happy_coder();
// 返回
return 0;
}
/**
【Input】
2
1
3
2
4
【Output】
2 0
【Input】
6
10000000
10000000
10000000
10000000
10000000
10000000
0
0
0
0
0
0
【Output】
12 12
*/
END