Pagini recente » Cod sursa (job #2154185) | Cod sursa (job #663315) | Cod sursa (job #2194426) | Cod sursa (job #2493998) | Cod sursa (job #341272)
Cod sursa(job #341272)
#include <stdio.h>
#include <string.h>
#define MMAX 600
#define P 9901
int c[MMAX], Q[MMAX][MMAX];
int i, j, k, p, M, N;
int main()
{
freopen("culori.in", "r", stdin);
freopen("culori.out", "w", stdout);
scanf("%d",&N);
M=2*N-1;
for(i=1;i<=M;i++)
scanf("%d",&c[i]);
for(i=1;i<=M;i++)
Q[i][i]=1;
for(k=2;k<=M;k++)
for(i=1;i<=M-k+1;i++)
{
j=i+k-1;
if(k%2==0 || c[i]!=c[j])
{
Q[i][j]=0;
continue;
}
Q[i][j]=0;
for(p=i;p<j;p+=2)
if(c[p]==c[i])
Q[i][j]=(Q[i][j]+Q[i][p]*Q[p+1][j-1])%P;
}
printf("%d\n",Q[1][M]);
return 0;
}