Cod sursa(job #2023232)

Utilizator refugiatBoni Daniel Stefan refugiat Data 18 septembrie 2017 16:59:57
Problema Fabrica Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <iostream>
#include <fstream>
#include <set>
#define NMAX 100005
using namespace std;
ifstream si("fabrica.in");
ofstream so("fabrica.out");
int a[NMAX],b[NMAX],d1[NMAX],d2[NMAX],n;
multiset< pair<int,int> > s;

void solve(int v[],int a[],int nx)
{
    int i;
    for(i=1;i<=nx;++i)
        s.insert(make_pair(a[i],a[i]));
    for(i=1;i<=n;++i)
    {
        v[i]=s.begin()->first;
        s.insert(make_pair(s.begin()->first+s.begin()->second,s.begin()->second));
        s.erase(s.begin());
    }
    s.erase(s.begin(),s.end());
}
int main()
{
    int na,nb;
    si>>n>>na>>nb;
    for(int i=1;i<=na;++i)
        si>>a[i];
    for(int i=1;i<=nb;++i)
        si>>b[i];

    solve(d1,a,na);
    solve(d2,b,nb);
    int i,sol=0;
    for(i=1;i<=n;++i)
        sol=max(sol,d1[i]+d2[n-i+1]);
    so<<d1[n]<<' '<<sol<<'\n';
    return 0;
}