Cod sursa(job #789266)

Utilizator tester9x9Tester9x9 tester9x9 Data 17 septembrie 2012 18:34:49
Problema Fabrica Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>
#include <queue>
#define NM 100010

using namespace std;

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

int N,NA,NB,i,j;
int A[NM],B[NM];
int ANS[NM];
int ANS1;
int C,T;

typedef pair<int,int> PI;

struct QueCMP
{
    bool operator () (const PI& a, const PI& b) const
    {
        return (a.first+a.second)>(b.first+b.second);
    }
};

priority_queue<PI, vector<PI>, QueCMP > Q;

int main ()
{
    f >> N >> NA >> NB;
    for (i=1; i<=NA; i++)
    {
        f >> A[i];
        Q.push(make_pair(A[i],0));
    }
    for (i=1; i<=N; i++)
    {
        C=Q.top().first;
        T=Q.top().second;
        Q.pop();
        ANS[i]=T+C;
        Q.push(make_pair(C,ANS[i]));
        ANS1=max(ANS1,ANS[i]);
    }
    g << ANS1 << '\n';

    f.close();
    g.close();
    return 0;
}