Cod sursa(job #2408792)

Utilizator mihaistamatescuMihai Stamatescu mihaistamatescu Data 18 aprilie 2019 12:42:55
Problema Fabrica Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.05 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;
}