Cod sursa(job #426145)

Utilizator dornescuvladVlad Eugen Dornescu dornescuvlad Data 26 martie 2010 14:54:18
Problema Economie Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<iostream>
#include<fstream>

using namespace std;

ifstream fin("economie.in");
ofstream fout("economie.out");

int V[2002],n,i,j,k,update2[1002],update[1002],Din[100000],affirmative,x,minim,ciur[100000],suma;

int cmp(int i, int j)
	{
		return j>i;
	}

int main()

{
	fin>>n;
	for(i=1;i<=n;i++)
		fin>>V[i];
	sort(V,V+n+1,cmp);
	update[1]=V[1];
	for(x=1;x*V[1]<=50005;x++)
		ciur[x*V[1]]=1;
	minim++;
	k=2;
	ciur[0]=1;
	for(i=2;i<=n;i++)
		for(x=2;x*V[i]<=50005;x++)
			ciur[x*V[i]]=1;
	
	for(i=1;i<=50002;i++)
		Din[i]=ciur[i];
	Din[0]=1;
	for(i=2;i<=n;i++)
		for(j=0;j<=50002;j++)
			if(Din[j]!=0)
				Din[V[i]+j]++;
	
			
	for(i=2;i<=n;i++)
		if(ciur[V[i]]==0 && Din[V[i]]<=1)
		{
			minim++;
			update[k++]=V[i];
		}
	fout<<minim<<"\n";
	for(i=1;i<=k-1;i++)
		fout<<update[i]<<"\n";
	
}