Cod sursa(job #561036)

Utilizator Adrian1997Radulescu Adrian Adrian1997 Data 18 martie 2011 20:20:59
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <stdio.h>
#include <algorithm>
using namespace std;
FILE *f=fopen("economie.in","r");
FILE *g=fopen("economie.out","w");
int n,v[1001];
int fr[50001];
bool q[50001];
int t[1001];

int main(void){
	register int i,j;
	
	fscanf(f,"%d",&n);
	for(i=1;i<=n;i++){
		fscanf(f,"%d",&v[i]);
		fr[v[i]]++;
	}
	fclose(f);
	
	sort(v+1,v+n+1);
	q[0]=1;
	int max=v[n];
	int z=0;
	for(i=1;i<=n;i++){
		if(!q[v[i]]){
			t[++z]=v[i];
		}
		for(j=0;j<=v[n]-v[i];j++){
			if(q[j]){
				q[j+v[i]]=true;
			}
		}
	}
	
	fprintf(g,"%d\n",z);
	for(i=1;i<=z;i++){
		fprintf(g,"%d\n",t[i]);
	}
	fclose(g);
	return 0;
}