Pagini recente » Cod sursa (job #264190) | Cod sursa (job #2924034) | Cod sursa (job #768654) | Cod sursa (job #3174316) | Cod sursa (job #2871808)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
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;
vector<int> vA,vASol,vB,vBSol;
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,1});
}
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,1});
}
cout<< timpCrt;
while(!Q.empty()){
Q.pop();
}
for(int i=1;i<=nB;i++){
cin>>vB[i];
Q.push({vB[i],i,2});
}
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,2});
}
for(int i=1;i<=n;i++)
{
timpTotal=max(timpTotal,vASol[i]+vBSol[n-i+1]);
}
cout<<" "<<timpTotal;
}