Pagini recente » Cod sursa (job #796900) | Cod sursa (job #2967427) | Cod sursa (job #3231672) | Cod sursa (job #2194691) | Cod sursa (job #956597)
Cod sursa(job #956597)
#include <algorithm>
#include <cstdio>
#include <iostream>
#include <queue>
#define fi first
#define se second
#define pb push_back
using namespace std;
typedef pair<int,int> ii;
const int MAXN=100010;
int N,A,B;
int a[MAXN];
int b[MAXN];
priority_queue<ii,vector<ii>,greater<ii> > q;
int main(){
freopen("fabrica.in","r",stdin);
freopen("fabrica.out","w",stdout);
scanf(" %d %d %d",&N,&A,&B);
for( int c,i=1 ; i<=A ; i++ ){
scanf(" %d",&c);
q.push(ii(c,c));
}
for( int i=1 ; i<=N ; i++ ){
a[i]=q.top().fi;
q.push(ii(q.top().fi+q.top().se,q.top().se));
q.pop();
}
for( int c,i=1 ; i<=B ; i++ ){
scanf(" %d",&c);
q.push(ii(c,c));
}
for( int i=1 ; i<=N ; i++ ){
b[i]=q.top().fi;
q.push(ii(q.top().fi+q.top().se,q.top().se));
q.pop();
}
int mx=0;
for( int i=1 ; i<=N ; i++ )
mx=max(mx,a[i]+b[N-i+1]);
printf("%d %d\n",a[N],mx);
return 0;
}