Cod sursa(job #586820)

Utilizator swift90Ionut Bogdanescu swift90 Data 2 mai 2011 23:16:19
Problema Fabrica Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include<stdio.h>
#include<queue>
using namespace std;
typedef pair<long long,int> PLI;
priority_queue<PLI,vector<PLI>,greater<PLI> > A,Bo;
priority_queue<int,vector<int>,greater<int> > B;
long long nra[100100],nrb[100100],timp;
int N,Na,Nb,T;
int main(){
	freopen("fabrica.in","r",stdin);
	freopen("fabrica.out","w",stdout);
	int i,j,x,y;
	scanf("%d%d%d",&N,&Na,&Nb);
	for(i=0;i<Na;++i){
		scanf("%d",&x);
		A.push(PLI(x,x));
	}
	for(i=0;i<Nb;++i){
		scanf("%d",&x);
		Bo.push(PLI(x,x));
	}
	for(i=1;i<=N;++i){
		x=A.top().first;
		y=A.top().second;
		A.pop();
		nra[i]=x;
		A.push(PLI((long long)(x+y),y));
	}
	printf("%lld ",nra[N]);
	fflush(stdout);
	j=1;
	for(i=1;i<=N;++i){
		x=Bo.top().first;
		y=Bo.top().second;
		Bo.pop();
		nrb[N-i+1]=x;
		Bo.push(PLI((long long)(x+y),y));
	}
	timp=0;
	for(i=1;i<=N;++i){
		if(nra[i]+nrb[i]>timp)
			timp=nra[i]+nrb[i];
	}
	
	printf("%lld\n",timp);
	
	fclose(stdin);
	fclose(stdout);
	return 0;
}