Cod sursa(job #711875)

Utilizator andreifirstCioara Andrei Ioan andreifirst Data 12 martie 2012 20:47:30
Problema Economie Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.46 kb
#include <fstream>
#include <algorithm>
using namespace std;

ifstream f("economie.in"); ofstream g("economie.out");

int dp[50000], r[1000], v[1000];
int t, i, j, n, x;

int main(){
	f>>n;
	for (i=1; i<=n; i++) f>>v[i];
	
	sort(v+1, v+n+1);
	
	for (i=1; i<=n; i++){
		x=v[i];
		
		if (dp[x]==0) {
			t++;
			r[t]=x;
			for (j=0; j+x<=50000; j++){
				if (dp[j]==1 || j==0) dp[j+x]=1;
			}
		}
	}
	g<<t<<"\n";
	for (i=1; i<=t; i++) g<<r[i]<<"\n";
}