Cod sursa(job #2407541)

Utilizator mariusn01Marius Nicoli mariusn01 Data 16 aprilie 2019 22:51:14
Problema Fabrica Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <fstream>
#include <set>

using namespace std;

multiset< pair<int, int> > S;
int n, na, nb, i, poz, val;

int a[100010], b[100010];
int v[50010];

ifstream fin ("fabrica.in");
ofstream fout("fabrica.out");

int main () {
    fin>>n>>na>>nb;
    for (i=1;i<=na;i++) {
        fin>>v[i];
        S.insert( make_pair(v[i], i) );
    }

    for (i=1;i<=n;i++) {
        a[i] = S.begin()->first;
        poz = S.begin()->second;
        val = S.begin()->first + v[poz];
        S.erase(S.begin());
        S.insert( make_pair(val, poz) );
    }

    while (!S.empty())
        S.erase(S.begin());


    for (i=1;i<=nb;i++) {
        fin>>v[i];
        S.insert( make_pair(v[i], i) );
    }

    for (i=n;i>=1;i--) {
        b[i] = S.begin()->first;
        poz = S.begin()->second;
        val = S.begin()->first + v[poz];
        S.erase(S.begin());
        S.insert( make_pair(val, poz) );
    }

    fout<<a[n]<<" ";
    int sol = a[1]+b[1];
    for (i=2;i<=n;i++)
        sol = max(sol, a[i]+b[i]);
    fout<<sol<<"\n";

    return 0;
}