Pagini recente » Cod sursa (job #1692243) | Cod sursa (job #296287) | Cod sursa (job #298953) | Cod sursa (job #297901) | Cod sursa (job #1561426)
#include <fstream>
using namespace std;
ifstream cin("culori.in");
ofstream cout("culori.out");
const int MOD = 9901, MAX = 513;
int n, m, v[MAX], dp[MAX][MAX];
int main()
{
cin>>n;
m = 2*n-1;
for(int i=1; i<=m; i++)
cin>>v[i];
for(int i=1; i<=m; i++){
dp[i][i] = 1;
}
for(int lg = 3; lg<=m; lg += 2)
for(int i=1; i+lg-1<=m; i++){
int j = i+lg-1;
if(v[i]!=v[j]) continue;
for(int k=i+1; k<j; k += 2)
if(v[k+1]==v[i])
dp[i][j] = (dp[i][j] + dp[i+1][k]*dp[k+1][j])%MOD;
}
cout<<dp[1][m];
return 0;
}