Pagini recente » Cod sursa (job #2283395) | Cod sursa (job #1517283) | Cod sursa (job #385246) | Cod sursa (job #2960335) | Cod sursa (job #1280888)
#include<stdio.h>
#define MOD 9901
int v[666];
int N;
int viz[666][666];
int din[666][666];
void calc(int x,int y){
if((y-x+1) % 2 == 0)
return;
//printf("%d %d\n",x,y);
if(y - x == 0){
din[x][y]=1;
return;
}
if(v[x] != v[y])
return;
if(viz[x][y])
return;
viz[x][y]=1;
calc(x+1,y-1);
din[x][y] += din[x+1][y-1];
din[x][y] %= MOD;
for(int i=x+2;i<y-1;++i){
if(v[x] == v[i] && v[x+1] == v[i-1]){
calc(x+1,i-1);
calc(i,y);
din[x][y] += (din[x+1][i-1] * din[i][y]);
}
din[x][y] %= MOD;
}
}
int main(){
freopen("culori.in","r",stdin);
freopen("culori.out","w",stdout);
scanf("%d",&N);
N=N*2-1;
for(int i=1;i<=N;++i){
scanf("%d",&v[i]);
}
calc(1,N);
printf("%d\n",din[1][N]);
}