Pagini recente » Cod sursa (job #443755) | Cod sursa (job #184513) | Cod sursa (job #1006858) | Cod sursa (job #1434614) | Cod sursa (job #586520)
Cod sursa(job #586520)
#include <cstdio>
#include <queue>
#define PII pair <int, int>
using namespace std;
const int NM = 100005;
int N, reza[NM], rezb[NM];
priority_queue <PII, vector <PII>, greater <PII> > A, B;
void read() {
int x, Na, Nb;
freopen("fabrica.in", "r", stdin);
freopen("fabrica.out", "w", stdout);
scanf("%d%d%d", &N, &Na, &Nb);
for (int i = 1; i <= Na; ++ i) {
scanf("%d", &x);
A.push(make_pair(x, x));
}
for (int i = 1; i <= Nb; ++ i) {
scanf("%d", &x);
B.push(make_pair(x, x));
}
}
void solve_a() {
PII sus;
for (int i = 1; i <= N; ++ i) {
sus = A.top();
A.pop();
reza[i] = sus.first;
A.push(make_pair(sus.first + sus.second, sus.second));
}
printf("%d ", reza[N]);
}
void solve_b() {
PII sus;
for (int i = 1; i <= N; ++ i) {
sus = B.top();
B.pop();
rezb[i] = sus.first;
B.push(make_pair(sus.first + sus.second, sus.second));
}
int rez = - 1;
for (int i = 1; i <= N; ++ i)
if (reza[i] + rezb[N - i + 1] > rez)
rez = reza[i] + rezb[N - i + 1];
printf("%d", rez);
}
int main() {
read();
solve_a();
solve_b();
return 0;
}