Pagini recente » Cod sursa (job #1804931) | Cod sursa (job #2818427) | Cod sursa (job #1500235) | Cod sursa (job #1482610) | Cod sursa (job #2303429)
#include <iostream>
#include<cstdio>
#include<queue>
#include<limits.h>
#include<algorithm>
using namespace std;
struct beree{
int t,i;
bool operator > (beree x) const{
if(t>x.t)
return true;
return false;
}
};
bool cmp(int x,int y){
return x>y;
}
priority_queue <beree,vector <beree>,greater <beree>> h;
const int N=100005;
int bere[N];
int nra[N];
int nrb[N];
int main()
{
FILE*fin,*fout;
fin=fopen("fabrica.in","r");
fout=fopen("fabrica.out","w");
int n,i,na,nb;
fscanf(fin,"%d%d%d",&n,&na,&nb);
for(i=1;i<=na;i++){
fscanf(fin,"%d",&nra[i]);
h.push({nra[i],i});
}
for(i=1;i<=n;i++){
bere[i]=h.top().t;
beree aux;
aux=h.top();
h.pop();
h.push({aux.t+nra[aux.i],aux.i});
}
int maxi=INT_MIN;
for(i=1;i<=n;i++){
maxi=max(bere[i],maxi);
}
fprintf(fout,"%d ",maxi);
h=priority_queue <beree,vector <beree>,greater <beree>> ();
for(i=1;i<=nb;i++){
fscanf(fin,"%d",&nrb[i]);
h.push({nrb[i],i});
}
sort(bere+1,bere+n+1,cmp);
for(i=1;i<=n;i++){
bere[i]+=h.top().t;
beree aux;
aux=h.top();
h.pop();
h.push({aux.t+nrb[aux.i],aux.i});
}
maxi=INT_MIN;
for(i=1;i<=n;i++){
maxi=max(bere[i],maxi);
}
fprintf(fout,"%d ",maxi);
return 0;
}