Cod sursa(job #205456)

Utilizator Astrid28Ruxandra Cohal Astrid28 Data 31 august 2008 22:28:46
Problema Economie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include<fstream.h>

int n;
long a[1001],v[1001],val[1001],nr;


void citire()
{
	ifstream fin("economie.in");
	int i;
	fin>>n;
	for(i=1;i<=n;i++)
		fin>>a[i];
	fin.close();
}



void numara()
{
	int i,ok,j;
	nr=1;
	val[1]=a[1];
	v[a[1]]=1;
	for(i=2*a[1];i<=a[n];i+=a[1])
		v[i]=1;

	for(i=2;i<=n;i++)
		if(!v[a[i]])
			{
				val[++nr]=a[i];
				v[a[i]]=nr;
				ok=1;
				for(j=a[1];j<=a[n] && ok;j++)
					if(v[j] && v[j]<nr)
					 {
						if(j+a[i]<=a[n])
							v[j+a[i]]=nr;
						 else ok=0;
					 }
				for(j=a[i]*2;j<=a[n];j+=a[i])
					v[j]=nr;
			}

}



void afisare()
{
	int i;
	ofstream fout("economie.out");
	fout<<nr<<'\n';
	for(i=1;i<=nr;i++)
		fout<<val[i]<<'\n';
	fout.close();
}


int main()
{
	citire();
	numara();
	afisare();
	return 0;
}