Cod sursa(job #429676)

Utilizator eudanipEugenie Daniel Posdarascu eudanip Data 30 martie 2010 13:04:53
Problema Culori Scor 4
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<stdio.h>
#define MOD 9901

int d[601][601],n;
int cpt,v[601];

int main ()
{
    int i,dist,j;
    freopen("culori.in","r",stdin);
    freopen("culori.out","w",stdout);
    scanf("%d",&n);
    for(i=1;i<=2*n-1;i++)
        scanf("%d",&v[i]);
    n=2*n-1;
    for(i=1;i<=n;i++)
        d[i][i]=1;
    for(dist=2;dist<=n;dist++)
        for(i=1;i<=n-dist+1;i++)
        {
            cpt=i+dist-1;
            if(v[i]!=v[cpt])
                continue;
            for(j=i+1;j<cpt;j++)
                if(v[j]==v[i])
                {
                    d[i][cpt]+=d[i][j]*d[j][cpt];
                    d[i][cpt]%=MOD;
                }
            d[i][cpt]+=d[i+1][cpt-1];
            if(d[i][cpt]>=MOD)
                d[i][cpt]-=MOD;
        }
    printf("%d\n",d[1][n]);
    return 0;
}