Pagini recente » Cod sursa (job #945404) | Cod sursa (job #300235) | Cod sursa (job #2118285) | Cod sursa (job #2900908) | Cod sursa (job #1682323)
#include <bits/stdc++.h>
#define maxN 100002
#define pii pair < int, int >
#define f first
#define s second
#define mp make_pair
using namespace std;
multiset < pii > V;
int v[2][maxN], a[2][maxN], n, nra, nrb, ans;
void read()
{
int i;
freopen("fabrica.in", "r", stdin);
scanf("%d %d %d", &n, &nra, &nrb);
for (i = 1; i <= nra; ++ i)
scanf("%d", &a[0][i]);
for (i = 1; i <= nrb; ++ i)
scanf("%d", &a[1][i]);
}
void solveab(int t, int nr)
{
int i;
V.erase(V.begin(), V.end());
for (i = 1; i <= nr; ++ i)
V.insert(mp(a[t][i], a[t][i]));
for (i = 1; i <= n; ++ i)
{
v[t][i] = V.begin()->f;
V.insert(mp(V.begin()->f + V.begin()->s, V.begin()->s));
V.erase(V.begin());
}
}
void solve()
{
int i;
solveab(0, nra);
solveab(1, nrb);
}
void write()
{
int i;
freopen("fabrica.out", "w", stdout);
for (i = 1; i <= n; ++ i)
if (v[0][i] + v[1][n - i + 1] > ans)
ans = v[0][i] + v[1][n - i + 1];
printf("%d %d", v[0][n], ans);
}
int main()
{
read();
solve();
write();
return 0;
}