Pagini recente » Cod sursa (job #746519) | Cod sursa (job #2928963) | Cod sursa (job #2293719) | Cod sursa (job #3213165) | Cod sursa (job #1280904)
#include<stdio.h>
#include<iostream>
#define MOD 9901
using namespace std;
int a[600],N,d[600][600],viz[600][600];
void solve(int i, int j) {
viz[i][j] = 1;
if(a[i]!=a[j]) {
return;
}
if(i==j) {
d[i][j] = 1;
return;
}
if(!viz[i+1][j-1]) {
solve(i+1,j-1);
}
d[i][j] = d[i+1][j-1];
for(int k=i+2;k<=j-2;++k) {
if(a[k]==a[j]) {
if(!viz[i+1][k-1]) {
solve(i+1,k-1);
}
if(!viz[k][j]) {
solve(k,j);
}
d[i][j] = (d[i][j] + d[i+1][k-1]*d[k][j])%MOD;
}
}
}
int main() {
freopen("culori.in","r",stdin);
freopen("culori.out","w",stdout);
scanf("%d",&N);
for(int i=1;i<=2*N-1;++i) {
scanf("%d",&a[i]);
}
solve(1,2*N-1);
printf("%d\n",d[1][2*N-1]);
return 0;
}