Cod sursa(job #18224)

Utilizator georgianaGane Andreea georgiana Data 18 februarie 2007 10:49:17
Problema Culori Scor 0
Compilator cpp Status done
Runda preONI 2007, Runda 2, Clasele 11-12 Marime 0.64 kb
#include <stdio.h>
#include <string.h>

#define MOD 9901
int n,c[515],a[515][515];

int main()
{
   freopen("culori.in","r",stdin);
   scanf("%d",&n);
   n=2*n;
   for (int i=1;i<n;i++) scanf("%d",&c[i]);

   memset(a,0,sizeof(a));
   for (int i=1;i<n;i++) a[i][i]=1;
   for (int t=1;t<n;t++)
      for (int i=1;i<n-t;i++)
         if (c[i]==c[i+t])
         {
            int j=i+t;
            a[i][j]=a[i+1][j-1];
            for (int k=i+1;k<j;k++)
               a[i][j]=(a[i][j]+a[i+1][k-1]*a[k+1][j-1])%MOD;
         }

   freopen("culori.out","w",stdout);
   printf("%d\n",a[1][n-1]);
   fclose(stdout);
   return 0;
}