Cod sursa(job #956597)

Utilizator burakbugrulBurak Bugrul burakbugrul Data 3 iunie 2013 15:01:32
Problema Fabrica Scor 92
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#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;
}