Cod sursa(job #809882)

Utilizator Robert29FMI Tilica Robert Robert29 Data 9 noiembrie 2012 11:09:55
Problema Economie Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<stdio.h>
#include<algorithm>
using namespace std;
FILE*f=fopen("economie.in","r");
FILE*g=fopen("economie.out","w");
int n,nr,v[1001],w[50001],sol[1001];
int main()
{
	fscanf(f,"%d",&n);
	for(int i=1;i<=n;++i)
		fscanf(f,"%d",&v[i]);
	
	sort(v+1,v+n+1);
	for(int i=1;i<=n;++i)
		if(!w[v[i]])
		{
			sol[++nr]=v[i];
			for(int j=v[i];j<=50000;j+=v[i])
				w[j]=1;
			int x=50000-v[i];
			for(register int j=1;j<=x;++j)
				if(w[j])
					w[j+v[i]]=1;
		}

	
	fprintf(g,"%d\n",nr);
	for(int i=1;i<=nr;++i)
		fprintf(g,"%d\n",sol[i]);
	
	
	
	
	fclose(f);
	fclose(g);
	return 0;
}