Cod sursa(job #2402213)

Utilizator NeredesinI am not real Neredesin Data 10 aprilie 2019 14:39:42
Problema Fabrica Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <iostream>
#include <fstream>
#include <set>

#define Nmax 100001

using namespace std;

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

int v1[Nmax], v2[Nmax];
int fpart11[Nmax], fpart12[Nmax];

int na, nb, np;

multiset < pair < int, int > > st1;
void read()
{
    in>>np>>na>>nb;
    int i;
    for(i=1; i<=na; ++i)
        in>>v1[i];
    for(i=1; i<=nb; ++i)
        in>>v2[i];
    in.close();
}
void solve(int v[],int a[],int n)
{
    int i;

    for(i=1; i<=n; ++i)
        st1.insert(make_pair(a[i],a[i]));

    for(i=1; i<=np; ++i)
    {
        v[i] = st1.begin()->first;
        st1.insert(make_pair(st1.begin()->first+st1.begin()->second, st1.begin()->second));
        st1.erase(st1.begin());
    }

    st1.erase(st1.begin(),st1.end());
}
int main()
{
    read();

    solve(fpart11,v1,na);
    solve(fpart12,v2,nb);

    int i;
    int maxim = 0;

    for(i=1; i<=np; ++i)
        maxim = max(maxim, fpart11[i] + fpart12[np-i+1]);


    out << fpart11[np] << " " << maxim << "\n";

    in.close();
    out.close();

    return 0;
}