Cod sursa(job #401224)

Utilizator blustudioPaul Herman blustudio Data 22 februarie 2010 17:44:56
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
	ifstream fin("economie.in");
	ofstream fout("economie.out");
	unsigned int n,v[1000],t,k,i,j,p[1000];
	char c[50000];
	for(i=1;i<=50000;i++)
	{
		c[i] = 0;
	}
	fin >> n;
	for(i=1;i<=n;i++)
	{
		fin >> v[i];
	}
	for(i=1;i<n;i++)
	{
		for(j=i;j<=n;j++)
		{
			if(v[i] > v[j])
			{
				t = v[i];
				v[i] = v[j];
				v[j] = t;
			}
		}
	}
	j=0;
	for(k=1;k<=n;k++)
	{
		if(c[v[k]] == 0)
		{
			j++;
			p[j] = v[k];
			c[v[k]] = 1;
			for(i=1;i+p[j]<=v[n];i++)
			{
				if(c[i] == 1)
				{
					c[i+p[j]] = 1;
				}
			}
		}
	}
	fout << j << endl;
	for(i=1;i<=j;i++)
	{
		fout << p[i] << endl;
	}
	fin.close();
	fout.close();
	return 0;
}