Cod sursa(job #2402123)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 10 aprilie 2019 13:00:21
Problema Fabrica Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <fstream>
#include <queue>
#define DIM 100010
using namespace std;

ifstream fin ("fabrica.in");
ofstream fout ("fabrica.out");
priority_queue < pair<int,int>, vector <pair<int,int> >, greater <pair<int,int> > > H;
int n,nra,nrb,i,pas,maxi,val;
int v[DIM],w[DIM],sola[DIM],solb[DIM];
int main (){

    fin>>n>>nra>>nrb;
    for (i=1;i<=nra;i++){
        fin>>v[i];
        H.push(make_pair(v[i],i));
    }
    for (i=1;i<=nrb;i++)
        fin>>w[i];
    pas = 1;
    while (pas <= n){

        val = H.top().first;
        maxi = max (maxi,val);
        sola[pas] = val;
        H.push (make_pair(v[H.top().second]+val,H.top().second));
        H.pop();
        pas++;
    }
    fout<<maxi<<" ";

    while (!H.empty())
        H.pop();
    for (i=1;i<=nrb;i++)
        H.push (make_pair (w[i],i));
    pas = 1;
    while (pas <= n){
        val = H.top().first;
        solb[pas] = val;
        H.push (make_pair(w[H.top().second]+val,H.top().second));
        H.pop();
        pas++;
    }

    for (i=1;i<=n/2;i++)
        swap (solb[i],solb[n-i+1]);
    maxi = 0;
    for (i=1;i<=n;i++)
        maxi = max (maxi,sola[i]+solb[i]);
    fout<<maxi;


    return 0;
}