Pagini recente » Cod sursa (job #1513987) | Cod sursa (job #1503377) | Cod sursa (job #2862995) | Cod sursa (job #2338201) | Cod sursa (job #2402123)
#include <fstream>
#include <queue>
#define DIM 100010
using namespace std;
ifstream fin ("fabrica.in");
ofstream fout ("fabrica.out");
priority_queue < pair<int,int>, vector <pair<int,int> >, greater <pair<int,int> > > H;
int n,nra,nrb,i,pas,maxi,val;
int v[DIM],w[DIM],sola[DIM],solb[DIM];
int main (){
fin>>n>>nra>>nrb;
for (i=1;i<=nra;i++){
fin>>v[i];
H.push(make_pair(v[i],i));
}
for (i=1;i<=nrb;i++)
fin>>w[i];
pas = 1;
while (pas <= n){
val = H.top().first;
maxi = max (maxi,val);
sola[pas] = val;
H.push (make_pair(v[H.top().second]+val,H.top().second));
H.pop();
pas++;
}
fout<<maxi<<" ";
while (!H.empty())
H.pop();
for (i=1;i<=nrb;i++)
H.push (make_pair (w[i],i));
pas = 1;
while (pas <= n){
val = H.top().first;
solb[pas] = val;
H.push (make_pair(w[H.top().second]+val,H.top().second));
H.pop();
pas++;
}
for (i=1;i<=n/2;i++)
swap (solb[i],solb[n-i+1]);
maxi = 0;
for (i=1;i<=n;i++)
maxi = max (maxi,sola[i]+solb[i]);
fout<<maxi;
return 0;
}