Cod sursa(job #719463)

Utilizator lucian666Vasilut Lucian lucian666 Data 21 martie 2012 20:15:00
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb

#include<fstream>
#include<algorithm>
#define NN 50001
using namespace std;

ofstream out("economie.out");
int uz[NN],v[1001],bst[1001],n,i,j;
void read();
void solve();
int main()
{
	read();
	solve();
	return 0;
}
void read()
{
	ifstream in("economie.in");
	in>>n;
	for(int i=1;i<=n;i++)
		in>>v[i];
}
void solve()
{
	sort(v+1,v+n+1);
	for( i=0;i<=v[n];i+=v[1])
		uz[i]=1;
	bst[++bst[0]]=v[1];
		for( i=2;i<=n;i++)
		{
			if(uz[v[i]]==0)
			{
				bst[++bst[0]]=v[i];
					for( j=0;j<=v[n]-v[i];j++)
						if(uz[j]!=0)
						uz[j+v[i]]=1;
			}
		}
		out<<bst[0]<<'\n';
		for( i=1;i<=bst[0];++i)
			out<<bst[i]<<'\n';
}