Cod sursa(job #48647)

Utilizator sealTudose Vlad seal Data 4 aprilie 2007 22:57:50
Problema Culori Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<stdio.h>
#define Nm 257
#define Mod 9901
int Nr[2*Nm][2*Nm],A[2*Nm],n;

void read()
{
    int i;

    freopen("culori.in","r",stdin);
    scanf("%d",&n);
    for(i=1;i<2*n;i++)
	scanf("%d",A+i);
}

void solve()
{
    int i,j,l;

    for(i=1;i<2*n;i++)
	Nr[i][i]=1;

    for(l=2;l<=2*n-2;l+=2)
	for(i=1;i<2*n-l;i++)
	    if(A[i]==A[i+l])
		for(j=2;j<=l;j+=2)
		    if(A[i]==A[i+j])
		    {
			Nr[i][i+l]+=Nr[i+1][i+j-1]*Nr[i+j][i+l];
			Nr[i][i+l]%=Mod;
		    }
}

void write()
{
    freopen("culori.out","w",stdout);
    printf("%d\n",Nr[1][2*n-1]);
}

int main()
{
    read();
    solve();
    write();
    return 0;
}