Cod sursa(job #383906)

Utilizator blustudioPaul Herman blustudio Data 18 ianuarie 2010 18:22:40
Problema Economie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
	long int n,v[1000],p[1000],pn;
	long int i,j,k,nc,t;
	ifstream fin("economie.in");
	ofstream fout("economie.out");
	fin >> n;
	for(i=1;i<=n;i++)
	{
		fin >> v[i];
	}
	for(i=1;i<n;i++)
	{
		for(j=i;j<=n;j++)
		{
			if(v[i] > v[j])
			{
				t = v[i];
				v[i] = v[j];
				v[j] = t;
			}
		}
	}
	int ok;
	p[1] = v[1];
	pn = 1;
	for(i=2;i<=n;i++)
	{
		nc = v[i];
		j = pn;
		while(j>=1 && nc != 0)
		{
			nc = nc%p[j]+p[j];
			j--;
		}
		j=pn;
		ok=0;
		while(ok == 0)
		{
			if(j-1 == 0)
			{
				ok = -1;
			}
			if(nc-p[j] == 0)
			{
				ok = 1;
			}
			j--;
		}
		if(ok == -1)
		{
			pn++;
			p[pn] = v[i];
		}
	}
	fout << pn << endl;
	for(i=1;i<pn;i++)
	{
		fout << p[i] << endl;
	}
	fout << p[pn];
	fin.close();
	fout.close();
	return 0;
}