Cod sursa(job #206246)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 5 septembrie 2008 14:28:09
Problema Culori Scor 24
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <stdio.h>

#define MMAX 257
#define MOD 9901

#define FIN "culori.in"
#define FOUT "culori.out"

int Culori[MMAX];
int C[MMAX][MMAX];
int N;

int main()
{
freopen(FIN,"rt",stdin);
freopen(FOUT,"wt",stdout);

int k,kk,kkk;
	scanf("%d", &N);

	for (int i=1;i<=2*N-1;++i)
	     {
	     scanf("%d", &Culori[i]);
	     C[i][i]=1;
	     }

	for (k=2;k<=2*N-1;k++)
	     for (kk=1;kk<=2*N-k;++kk)
		  {
		   if (k%2==0 || Culori[kk]!=Culori[k+kk-1])
			{C[kk][k+kk-1]=0;continue;}
			 C[kk][k+kk-1]=0;
			 for (kkk=kk;kkk<kk+k-1;kkk+=2)
			     if (Culori[kkk]==Culori[kk])
				 C[kk][k+kk-1]=(C[kk][k+kk-1]+C[kk][kkk]*C[kkk+1][kk+k-2])%MOD;
		}
printf("%d\n", C[1][2*N-1]);
return 0;
}