Pagini recente » Cod sursa (job #3258324) | Cod sursa (job #3183704) | Cod sursa (job #1621910) | Cod sursa (job #3222697) | Cod sursa (job #585838)
Cod sursa(job #585838)
#include <stdio.h>
#include <queue>
using namespace std;
int n, n1, n2, sol;
int v1[100002], v2[100002];
priority_queue< pair<int,int>, vector< pair<int,int> >, greater< pair<int,int> > > h1, h2;
int main ()
{
freopen ("fabrica.in", "r", stdin);
freopen ("fabrica.out", "w", stdout);
scanf ("%d %d %d", &n, &n1, &n2);
int i, x;
for (i = 1; i <= n1; i ++)
{
scanf ("%d", &x);
h1.push (make_pair (x, x));
}
for (i = 1; i <= n; i ++)
{
v1[i] = h1.top().first;
h1.push (make_pair (v1[i] + h1.top().second, h1.top().second));
h1.pop();
}
for (i = 1; i <= n2; i ++)
{
scanf ("%d", &x);
h2.push (make_pair (x, x));
}
for (i = 1; i <= n; i ++)
{
v2[i] = h2.top().first;
h2.push (make_pair (v2[i] + h2.top().second, h2.top().second));
h2.pop();
}
printf ("%d ", v1[n]);
int sol = 0;
for (i = 1; i <= n; i ++)
if (v1[i] + v2[n - i + 1] > sol)
sol = v1[i] + v2[n - i + 1];
printf ("%d\n", sol);
return 0;
}