Pagini recente » Cod sursa (job #142485) | Cod sursa (job #479819) | Cod sursa (job #384865) | Cod sursa (job #161506) | Cod sursa (job #586566)
Cod sursa(job #586566)
#include<cstdio>
#include<queue>
#include<algorithm>
using namespace std;
priority_queue< pair<int, int>, vector< pair<int, int> >, greater< 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;
}