Pagini recente » Cod sursa (job #1272557) | Cod sursa (job #355485) | Cod sursa (job #739732) | Cod sursa (job #1207162) | Cod sursa (job #587925)
Cod sursa(job #587925)
#include<fstream>
#include<set>
#define Nmax 100001
using namespace std;
int A[Nmax],B[Nmax],doza_1[Nmax],doza_2[Nmax],na,nb,N;
multiset< pair<int,int> > S;
void read()
{
ifstream f("fabrica.in");
f>>N>>na>>nb;
int i;
for(i=1;i<=na;++i)f>>A[i];
for(i=1;i<=nb;++i)f>>B[i];
f.close();
}
void solve(int v[],int a[],int n)
{
int i;
for(i=1;i<=n;++i)
S.insert(make_pair(a[i],a[i]));
for(i=1;i<=N;++i)
{
v[i] = S.begin()->first;
S.insert(make_pair(S.begin()->first+S.begin()->second, S.begin()->second));
S.erase(S.begin());
}
S.erase(S.begin(),S.end());
}
int main()
{
read();
solve(doza_1,A,na);
solve(doza_2,B,nb);
int i,maxim=0;
for(i=1;i<=N;++i)
maxim = max(maxim, doza_1[i] + doza_2[N-i+1]);
ofstream g("fabrica.out");
g<<doza_1[N]<<" "<<maxim<<"\n";
g.close();
return 0;
}