【題解】AtCoder ABC160E – Red and Green Apples

【題目敘述】https://atcoder.jp/contests/abc160/tasks/abc160_e

#include <bits/stdc++.h>
using namespace std;

int x, y, a, b, c, r[100005], g[100005], w[100005], p;
vector <int> v;
long long ans;

int main(){
    cin >> x >> y;
    cin >> a >> b >> c;
    for (int i = 0; i < a; i++){
        cin >> r[i];
    }
    for (int i = 0; i < b; i++){
        cin >> g[i];
    }
    for (int i = 0; i < c; i++){
        cin >> w[i];
    }
    sort(r, r+a);
    reverse(r, r+a);
    sort(g, g+b);
    reverse(g, g+b);
    sort(w, w+c);
    reverse(w, w+c);
    for (int i = 0; i < x; i++){
        ans += r[i];
        v.push_back(r[i]);
    }
    for (int i = 0; i < y; i++){
        ans += g[i];
        v.push_back(g[i]);
    }
    sort(v.begin(), v.end());
    for (int i:v){
        if (i < w[p]){
            ans -= i;
            ans += w[p];
            p++;
        }
        else break;
    }
    cout << ans << "\n";
}

分享本文 Share with friends