Pagini recente » Cod sursa (job #725243) | Cod sursa (job #1585322) | Cod sursa (job #216575) | Cod sursa (job #809455) | Cod sursa (job #2871812)
#include <fstream>
//#include <vector>
#include <queue>
using namespace std;
const int DIM = 100005;
ifstream cin("fabrica.in");
ofstream cout("fabrica.out");
struct Procesor{
int timpProcesare;
int pos;
//int tip;
bool operator<(Procesor a) const{
return timpProcesare > a.timpProcesare;
}
};
int n,nA,nB;
int solA;
int vA[DIM],vASol[DIM],vB[DIM],vBSol[DIM];
priority_queue<Procesor> Q;
int main()
{
Procesor p;
int timpCrt,pos,timpTotal=0;
cin>>n>>nA>>nB;
//vA.resize(nA+1);
//vASol.resize(nA+1);
//vB.resize(nB+1);
//vBSol.resize(nB+1);
for(int i=1;i<=nA;i++){
cin>>vA[i];
Q.push({vA[i],i});
}
for(int i=1;i<=n;i++){
p = Q.top();
timpCrt=p.timpProcesare;
pos=p.pos;
vASol[i]=timpCrt;
Q.pop();
Q.push({timpCrt+vA[pos],pos});
}
cout<< timpCrt;
while(!Q.empty()){
Q.pop();
}
for(int i=1;i<=nB;i++){
cin>>vB[i];
Q.push({vB[i],i});
}
for(int i=1;i<=n;i++){
p = Q.top();
timpCrt=p.timpProcesare;
pos=p.pos;
vBSol[i]=timpCrt;
Q.pop();
Q.push({timpCrt+vB[pos],pos});
}
for(int i=1;i<=n;i++)
{
timpTotal=max(timpTotal,vASol[i]+vBSol[n-i+1]);
}
cout<<" "<<timpTotal;
}