Pagini recente » Cod sursa (job #1326953) | Cod sursa (job #2964507) | Cod sursa (job #1942269) | Cod sursa (job #2216469) | Cod sursa (job #1556015)
#include <fstream>
#include <set>
#include <algorithm>
using namespace std;
ifstream f("fabrica.in");
ofstream g("fabrica.out");
int N,nrA,nrB,A[50005],B[50005];
int X[100005],Y[100005];
multiset <pair<int,int> > S;
int ansA,ansB;
void Read()
{
f>>N>>nrA>>nrB;
for(int i=1;i<=nrA;i++)
{
f>>A[i];
S.insert(make_pair(A[i],A[i]));
}
for(int i=1;i<=nrB;i++)
f>>B[i];
}
void Solve()
{
for(int i=1;i<=N;i++)
{
auto it=*S.begin();
S.erase(S.begin());
ansA=max(ansA,it.first);
X[i]=it.first;
it.first+=it.second;
S.insert(it);
}
S.clear();
g<<ansA<<" ";
for(int i=1;i<=nrB;i++)
S.insert(make_pair(B[i],B[i]));
for(int i=1;i<=N;i++)
{
auto it=*S.begin();
S.erase(S.begin());
Y[i]=it.first;
it.first+=it.second;
S.insert(it);
}
for(int i=1;i<=N;i++)
ansB=max(ansB,X[i]+Y[N-i+1]);
g<<ansB<<"\n";
}
int main()
{
Read();
Solve();
return 0;
}