문제
링크
풀이
#include <algorithm>
#include <iostream>
#include <numeric>
#include <vector>
using namespace std;
void solve(void) {
int b, c, d; cin >> b >> c >> d;
vector<int> x(b), y(c), z(d);
for (int i=0; i<b; i++) cin >> x[i];
for (int i=0; i<c; i++) cin >> y[i];
for (int i=0; i<d; i++) cin >> z[i];
sort(x.begin(), x.end(), greater<int>());
sort(y.begin(), y.end(), greater<int>());
sort(z.begin(), z.end(), greater<int>());
cout << accumulate(x.begin(), x.end(), 0) +
accumulate(y.begin(), y.end(), 0) +
accumulate(z.begin(), z.end(), 0) << "\n";
int ans = 0;
for (int i=0; i<min({b, c, d}); i++) {
ans += (x[i] + y[i] + z[i]) * 9 / 10;
}
for (int i=min({b, c, d}); i<max({b, c, d}); i++) {
if (i < b) ans += x[i];
if (i < c) ans += y[i];
if (i < d) ans += z[i];
}
cout << ans;
}
int main(void) {
ios::sync_with_stdio(false);
cin.tie(nullptr);
solve();
return 0;
}