Cod sursa(job #3208723)

Utilizator Anul2024Anul2024 Anul2024 Data 29 februarie 2024 15:24:05
Problema Fabrica Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <fstream>
#include <queue>
using namespace std;
ifstream fin ("fabrica.in");
ofstream fout ("fabrica.out");
int k,n,m,i,a[50001],b[50001];
long long sol,t1[100001],t2[100001];;
pair <int,int> p;
priority_queue <pair <long long,int>> q;
int main ()
{
    fin>>k>>n>>m;
    for (i=1; i<=n; i++)
    {
        fin>>a[i];
        q.push (make_pair (-a[i],a[i]));
    }
    for (i=1; i<=k; i++)
    {
        p=q.top ();
        q.pop ();
        p.first=-p.first;
        t1[i]=p.first;
        p.first=-(p.first+p.second);
        q.push (p);
    }
    while (!q.empty ())
        q.pop ();
    for (i=1; i<=n; i++)
    {
        fin>>b[i];
        q.push (make_pair (-b[i],b[i]));
    }
    for (i=1; i<=k; i++)
    {
        p=q.top ();
        q.pop ();
        p.first=-p.first;
        t2[i]=p.first;
        p.first=-(p.first+p.second);
        q.push (p);
    }
    while (!q.empty ())
        q.pop ();
    for (i=1; i<=k; i++)
        sol=max (sol,t1[i]+t2[k-i+1]);
    fout<<t1[k]<<" "<<sol;
    return 0;
}