Cod sursa(job #719439)

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

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

ofstream out("economie.out");
int uz[NN],v[1001],bst[1001],n;
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+n,v+n+1);
	for(int i=0;i<=v[n];i+=v[1])
		uz[i]=1;
	int t=0;
	bst[++t]=v[1];
		for(int i=2;i<=n;i++)
		{
			if(!uz[v[i]])
			{
				bst[++t]=v[i];
					for(int j=0;j<=v[n]-v[i];j++)
						uz[j+v[i]]=1;
			}
		}
		out<<t<<'\n';
		for(int i=1;i<=t;++i)
			out<<bst[i]<<" ";
}