Cod sursa(job #88527)

Utilizator devilkindSavin Tiberiu devilkind Data 2 octombrie 2007 20:24:34
Problema Culori Scor 4
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <stdio.h>
#define NMAX 512
#define modulo 9901

long long a[NMAX],i,j,k,dp[NMAX][NMAX],x,y,n;

int main()
{
freopen("culori.in","r",stdin);
freopen("culori.out","w",stdout);

scanf("%ld",&n);
n=n*2-1;

for (i=1;i<=n;i++)
        scanf("%lld ",&a[i]);

for (i=0;i<=n;i+=2)
        {

        for (j=1;j<=n-i;j++)
                {
                x=j;y=j+i;
                if (x==y) {dp[x][y]=1;continue;}

                if (a[x]!=a[y]) {dp[x][y]=0;continue;}

                dp[x][y]=dp[x+1][y-1];

                for (k=x+1;k<y;k++)
                        if (a[k]==a[x]) {
                                        dp[x][y]= dp[x][y] + dp[x+1][k]* dp[k+1][y];
                                        dp[x][y]%=9901;
                                        }
                }

        }
printf("%lld",dp[1][n]);
return 0;
}