Cod sursa(job #2649707)

Utilizator AlexandruabcdeDobleaga Alexandru Alexandruabcde Data 15 septembrie 2020 21:59:30
Problema Fabrica Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f ("fabrica.in");
ofstream g ("fabrica.out");

typedef pair <int, int> PII;

int N, Nr_A, Nr_B;

vector <int> Solve (vector <int> A) {
    priority_queue <PII, vector<PII>, greater<PII> > H;
    vector <int> ans;

    for (auto &it : A) {
        H.push({it, it});
    }

    for (int i = 0; i < N; ++ i ) {
        ans.push_back(H.top().first);
        PII ad = {H.top().first + H.top().second, H.top().second};
        H.pop();
        H.push(ad);
    }

    return ans;
}

int main()
{
    f >> N >> Nr_A >> Nr_B;

    vector <int> A(Nr_A);
    for (int i = 0; i < Nr_A; ++ i )
        f >> A[i];
    vector <int> ans_A = Solve(A);

    vector <int> B(Nr_B);
    for (int i = 0; i < Nr_B; ++ i )
        f >> B[i];
    vector <int> ans_B = Solve(B);

    int sol = 0;
    for (int i = 0; i < N; ++ i ) {
        sol = max(sol, ans_A[i] + ans_B[N-i-1]);
    }

    g << ans_A[N-1] << " " << sol << '\n';

    return 0;
}