Cod sursa(job #779997)

Utilizator maritimCristian Lambru maritim Data 19 august 2012 17:24:05
Problema Indep Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<stdio.h>

FILE *f = fopen("indep.in","r");
FILE *g = fopen("indep.out","w");

#define MaxN 510
#define MaxP 3
#define MaxNrMari 2000
#define MaxA 1010
#define ll long long

int N;
int A[MaxN];
ll Best[MaxA];//[MaxNrMari];

void citire(void)
{
	fscanf(f,"%d\n",&N);
	for(int i=1;i<=N;i++)
		fscanf(f,"%d ",&A[i]);
}

inline int cmmdc(int a,int b)
{
	if(!b)
		return a;
	return cmmdc(b,a%b);
}

void Afisare(int Best[],int N)
{
	for(int i=1;i<=N;i++)
		printf("%d ",Best[i]);
	printf("\n");
}

void Rezolvare(void)
{
	for(int i=1;i<=N;i++)
	{
		for(int j=1;j<=1000;j++)
			Best[cmmdc(j,A[i])] += Best[j];
		Best[A[i]] ++;
		//Afisare(Best,10);
	}
}

int main()
{
	citire();
	Rezolvare();
	
	fprintf(g,"%lld\n",Best[1]);
}