Cod sursa(job #18238)

Utilizator TheCreeepIonita Andrei Lucian TheCreeep Data 18 februarie 2007 10:57:03
Problema Culori Scor 4
Compilator c Status done
Runda preONI 2007, Runda 2, Clasele 11-12 Marime 0.56 kb
#include <stdio.h>
#define MOD 9901
int x[256],i,j,k,n;
long long z[256][256];
FILE *f;
int main (void)
{
	f=fopen("culori.in","r");
	fscanf(f,"%d",&n);
	for(i=0;i<n;i++) fscanf(f,"%d",&x[i]);
	fclose(f);
	for(i=0;i<n;i++) z[i][i]=1;
	if (n%2==1) 
	for(i=2;i<n;i+=2)
	{
		for(j=0;i+j<n;j++)
		{
			if (x[j]==x[j+i])
			{
				z[j][j+i] = z[j+1][j+i-1];
				for(k=j+1;k<i+j;k++)
				if (x[k]==x[j]) z[j][j+i]=(z[j][i+j]+z[j][k]*z[k][i+j])%MOD;
//				printf("z[%d][%d]=%d\n",j,i+j,z[j][i+j]);
			}
		}
	}
	f=fopen("culori.out","w");
	fprintf(f,"%lld\n",z[0][n-1]);
	fclose(f);
}