Pagini recente » Cod sursa (job #2001896) | Cod sursa (job #1435559) | Cod sursa (job #1460366) | Cod sursa (job #2920646) | Cod sursa (job #994924)
Cod sursa(job #994924)
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <queue>
#include <algorithm>
using namespace std;
#define PII pair<int, int>
#define mp make_pair
priority_queue<PII, vector<PII>, greater<PII> > Q;
int N, nrA, nrB, A[100010], B[100010], V[100010], ans1, ans2;
int main()
{
freopen("fabrica.in", "r", stdin);
freopen("fabrica.out", "w", stdout);
int i;
scanf("%i %i %i", &N, &nrA, &nrB);
for(i = 1; i <= nrA; i++)
{
scanf("%i", &V[i]);
Q.push(mp(V[i], V[i]));
}
for(i = 1; i <= N; i++)
{
A[i] = Q.top().first;
Q.push(mp(Q.top().first + Q.top().second, Q.top().second));
Q.pop();
}
while(!Q.empty()) Q.pop();
for(i = 1; i <= nrB; i++)
{
scanf("%i", &V[i]);
Q.push(mp(V[i], V[i]));
}
for(i = 1; i <= N; i++)
{
B[i] = Q.top().first;
Q.push(mp(Q.top().first + Q.top().second, Q.top().second));
Q.pop();
}
for(i = 1; i <= N; i++)
{
ans1 = max(ans1, A[i]);
ans2 = max(ans2, A[i] + B[N - i + 1]);
}
printf("%i %i\n", ans1, ans2);
return 0;
}