Cod sursa(job #295923)

Utilizator tudgal1001Profir Tudor tudgal1001 Data 3 aprilie 2009 19:39:48
Problema Indep Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include<fstream.h>
#include<math.h>
#include<values.h>
ifstream f("indep.in");
ofstream g("indep.out");
int min,i,k,a[501],b[501],n,ok,z=0;
void binar (int a[501],int n)
{
	min=1;
	for (i=n; i>=1; i--)
	{
		if (a[i]==1 && min==1) a[i]=0;
		else if (a[i]==0 && min==1) { a[i]=1; min=0; }
	}
}
int numarare(int a[501],int n)
{
	k=0;
	for (i=1; i<=n; i++)
		if (a[i]==1) k++;
	return k;
}
void init(int a[501],int n)
{
	for (i=1; i<=n; i++)
		a[i]=0;
}
int main ()
{
	f>>n;
	for (i=1; i<=n; i++)
		f>>a[i];
        init(b,n);
	while (numarare(b,n)<n)
	{
		binar(b,n); min=MAXINT;
		for (i=1; i<=n; i++)
			if (b[i]==1 && a[i]<min) min=a[i];
		while (min!=1)
		{
			ok=1;
			for (i=1; i<=n; i++)
				if (b[i]==1 && a[i]%min!=0) ok=0;
			if (ok==1) break;
			else min--;
		}
		if (min==1) z++;
	}
	g<<z;
        return 0;
}