Cod sursa(job #588708)

Utilizator S7012MYPetru Trimbitas S7012MY Data 9 mai 2011 10:35:14
Problema Fabrica Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
#include <set>
#define DN 50005
#define x first
#define y second
using namespace std;

typedef pair<int, int> per;
multiset<per> s;

int c1[DN+DN],c2[DN+DN],a[DN],b[DN],n,d1,d2;

void rez(int c[],int a[],int sz) {
    for(int i=1; i<=sz; ++i) s.insert(make_pair(a[i],a[i]));
    for(int i=1; i<=n; ++i) {
        c[i]=(*s.begin()).x;
        s.insert(make_pair((*s.begin()).x+(*s.begin()).y,(*s.begin()).y));
        s.erase(s.begin());
    }
    s.clear();
}

int main()
{
    ifstream f("fabrica.in");
    ofstream g("fabrica.out");
    f>>n>>d1>>d2;
    for(int i=1; i<=d1; ++i) f>>a[i];
    for(int i=1; i<=d2; ++i) f>>b[i];
    rez(c1,a,d1); rez(c2,b,d2);
    int rez=0;
    for(int i=1; i<=n; ++i) rez=max(rez,c1[i]+c2[n-i+1]);
    g<<c1[n]<<' '<<rez;
    return 0;
}