Cod sursa(job #419942)

Utilizator AndreiRSStatescu Andrei Rares AndreiRS Data 18 martie 2010 10:58:58
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <stdio.h>
#include <algorithm>

using namespace std;

int v[1001];
int out[1001];
int a[50001];

int n;
int i,j,aux;
int pmax,m;

int main(){
	
	FILE *f1 = fopen("economie.in","r");
	fscanf(f1,"%d",&n);
	for(i=1; i<=n; i++)
		fscanf(f1,"%d",&v[i]);	
	fclose(f1);
	
	sort(v+1,v+n+1);
	
	pmax = 0;
	a[0] = 1;
	
	for(i=1; i<=n; i++){
		if(a[v[i]] == 0){
			a[v[i]] = 1;
			m++;
			out[m] = v[i];
		}
		for(j=1; j<=v[n]; j++)
			if(a[j] == 1)
				if(j+v[i]<=v[n] && a[j + v[i]] == 0)
					a[j + v[i]] = 1;
				
				
				
				
				
	}
	
	FILE *f2 = fopen("economie.out","w");
	fprintf(f2,"%d",m);
	for(i=1; i<=m; i++)
		fprintf(f2,"\n%d",out[i]);
	fclose(f2);
	
	return 0;
}