Cod sursa(job #720763)

Utilizator danalex97Dan H Alexandru danalex97 Data 22 martie 2012 21:11:31
Problema Fabrica Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <cstdio>
#include <set>
#include <algorithm>

#define NMax 100005
#define t first
#define pt second

using namespace std;

int N, T[2][NMax];
multiset < pair <int, int> > H;

using namespace std;

void ReadPT (int NP)
{
    for (int i=1; i<=NP; ++i)
    {
        int pt;
        scanf ("%d", &pt);
        H.insert (make_pair (pt, pt));
    }
}

void Solve (int Time[])
{
    for (int i=1; i<=N; ++i)
    {
        Time[i]=H.begin ()->t;
        H.insert (make_pair (H.begin ()->t+H.begin ()->pt, H.begin ()->pt));
        H.erase (H.begin ());
    }
    H.clear ();
}

int main()
{
    freopen ("fabrica.in", "r", stdin);
    freopen ("fabrica.out", "w", stdout);
    int NP[2], S[2]={0, 0};
    scanf ("%d %d %d", &N, &NP[0], &NP[1]);
    for (int i=0; i<2; ++i)
    {
        ReadPT (NP[i]);
        Solve (T[i]);
    }
    S[0]=T[0][N];
    for (int i=1; i<=N; ++i)
    {
        S[1]=max (S[1], T[0][i]+T[1][N-i+1]);
    }
    printf ("%d %d\n", S[0], S[1]);
    return 0;
}