Cod sursa(job #587925)

Utilizator cdascaluDascalu Cristian cdascalu Data 6 mai 2011 14:47:56
Problema Fabrica Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#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;
}