Cod sursa(job #937892)

Utilizator DaNutZ2UuUUBB Bora Dan DaNutZ2UuU Data 11 aprilie 2013 11:51:47
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<fstream>
#include<algorithm>
#include<vector>
using namespace std;
int n,v[1010],valmax;
bool posibil[50100];
vector <int> sol;

int main()
{
	int i,j;
	ifstream fin("economie.in");
	fin>>n;
	for(i=1;i<=n;i++)
		fin>>v[i];
	fin.close();

	sort(v+1,v+n+1);
	valmax=v[n];
	for(i=1;i<=n;i++)
	{
		if(posibil[v[i]]==true)
			continue;
		sol.push_back(v[i]);
		posibil[v[i]]=true;
		for(j=1;j+v[i]<=valmax;j++)
		{
			if(posibil[j]==true)
				posibil[j+v[i]]=true;
		}
	}

	ofstream fout("economie.out");
	fout<<sol.size()<<"\n";
	for(i=sol.size()-1;i>=0;i--)
		fout<<sol[i]<<"\n";
	fout.close();
	return 0;
}