Cod sursa(job #22624)

Utilizator vrajalaMihai Viteazu, razboinicu luminii vrajala Data 26 februarie 2007 22:45:20
Problema Culori Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <stdio.h>
#include <string.h>

#define lmax 600
#define modulo 9901

int n, t[lmax], i, j, k;
long nr[lmax][lmax];

int main()
{
      freopen("culori.in","r",stdin);
      scanf("%d\n",&n);
      t[0]=0;
      t[2*n]=0;
      for (i=1;i<2*n;++i)
	  scanf("%d",&t[i]);
      fclose(stdin);
      for (i=0;i<=2*n;++i)
	  nr[i][i]=1;
      for (j=2;j<=2*n;j+=2)
	  for (i=0;i<=2*n-j;++i)
	      if (t[i]==t[i+j])
		 {
		 for (k=i+1;k<i+j;++k)
		     if (t[i+1]==t[k])
			{
			nr[i][i+j] += nr[i+1][k]*nr[k+1][i+j];
            nr[i][i+j] %= modulo;
            }
         }
      freopen("culori.out","w",stdout);
      printf("%ld",nr[0][2*n]);
      fclose(stdout);
      return 0;
}