Pagini recente » Cod sursa (job #1932707) | Cod sursa (job #2400000) | Cod sursa (job #1802808) | Cod sursa (job #3238617) | Cod sursa (job #3235430)
#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 <long long,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<=m; 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;
}