Cod sursa(job #795292)

Utilizator BarracudaFMI-Alex Dobrin Barracuda Data 7 octombrie 2012 23:33:24
Problema Economie Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<fstream>
#include<algorithm>
#define dim 1002
using namespace std;


ifstream f("economie.in");
ofstream g("economie.out");
long a[dim],Maxim,i,j,k;
int v[dim];
int n,ans;
bool ok[50005]={0};
int main () {
	
	f>>n;
	
	Maxim=50008;
	for(i=1;i<=n;++i)
		f>>a[i];
	
	sort(a+1,a+1+n);
	
	for(i=1;i<=n;++i){
		
		if(ok[a[i]]==0){
			
		
		for(	k=a[i];k<Maxim	;k+=a[i]	)
			ok[k]=1;
		
		for(k=1;k<Maxim; ++k){
			if(ok[k]){
				
				if(ok[k+a[i]]==0 && k+a[i]<Maxim)
					ok[k+a[i]]=1;
				
			}
		}
		
		
		v[++ans]=i;
		}
	}
	g<<ans<<"\n";
	for(i=1;i<=ans;++i)
		g<<a[v[i]]<<"\n";
	return 0;
}