Cod sursa(job #586521)

Utilizator deneoAdrian Craciun deneo Data 2 mai 2011 11:23:49
Problema Fabrica Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include<cstdio>
#include<queue>
#include<algorithm>
using namespace std;

priority_queue< pair<int, int> > pa, pb; //incearca si cu schimbarea ordonarii
int nrdoze, nra, nrb;

int main() {
	int i, ax, tdozai, _maxtdozai = -1, _max = - 1; 
	
	freopen("fabrica.in", "rt", stdin);
	freopen("fabrica.out", "wt", stdout);
	scanf("%d%d%d", &nrdoze, &nra, &nrb);
	for(i = 1; i <= nra; ++i) {
		scanf("%d", &ax);
		pa.push( make_pair(0, ax)  );
	}
	for(i = 1; i <= nrb; ++i) {
		scanf("%d", &ax);
		pb.push( make_pair(0, ax)  );
	}
	
	for(i = 1; i <= nrdoze; ++i) {
		tdozai = pa.top() . first + pa.top() . second;
		ax = pa.top() . second;
		pa.pop();
		pa.push( make_pair(tdozai, ax) );
		
		if( tdozai > _max )
			_max = tdozai;
			
		tdozai = max(tdozai, pb.top() . first);
		ax = pb.top() . second;
		tdozai += ax;
		pb.pop();
		pb.push( make_pair(tdozai, ax) );
		
		if( tdozai > _maxtdozai)
			_maxtdozai = tdozai;
	}
	printf("%d%d\n", _max, _maxtdozai);
	return 0;
}