Cod sursa(job #283223)

Utilizator irene_mFMI Irina Iancu irene_m Data 18 martie 2009 21:05:22
Problema Economie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <fstream.h>
#define Vmax 50009
#define Nmax 1009
int v[Nmax],n,s[Vmax];

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

void sol()
{
	int i,j,max=0,maxt;
	long l,aux;
	for(i=1;i<=n;i++)
	{
		maxt=max;
		for(j=maxt;j>=1;j--)
			if(s[j]!=0)
			{
				l=j+v[i]; aux=l;
				while(l<=Vmax)
				{
					if(l>max)
						max=l;
					s[l]=1;
					l+=aux;
				}
			}
		l=v[i]*2; aux=v[i];
		if(s[v[i]]==0)
			s[v[i]]=-1;
		while(l<=Vmax)
		{
			if(l>max)
				max=l;
			s[l]=1;
			l+=aux;
		}
	}
}

void numar()
{
	int nr=0,i,x;
	ofstream f("ec.out");
	for(i=1;i<=n;i++)
		if(s[v[i]]==-1)
		{
			f<<v[i]<<'\n';
			nr++;
		}
	f.close();
	ifstream g("ec.out");
	ofstream fout("economie.out");
	fout<<nr<<'\n';
	for(i=1;i<=nr;i++)
	{
		g>>x;
		fout<<x<<'\n';
	}
	g.close();
	fout.close();
}

int main()
{
	cit();
	sol();
	numar();
	return 0;
}