Pagini recente » Cod sursa (job #79503) | Cod sursa (job #2875112) | Cod sursa (job #631780) | Cod sursa (job #1492530) | Cod sursa (job #2496149)
#include <fstream>
#include <iostream>
using namespace std;
ifstream fin ("culori.in");
ofstream fout ("culori.out");
const int MAXN = 600,mod = 9901;
int v[MAXN],n,d[MAXN][MAXN];
int main() {
fin >> n;
n = 2 * n - 1;
for ( int i = 1;i <= n; ++i)
fin >> v[i];
for ( int i = 1; i <= n; ++i)
d[i][i] = 1;
for ( int l = 1; l <= n; ++l)
for ( int i = 1; i <= n-l; ++i) {
int j = i + l;
if ( v[i] == v[j]) {
d[i][j] = (d[i][j] + d[i+1][j-1]) % mod;
for ( int k = i+1; k< j; ++k)
if ( v[k] == v[i])
d[i][j] = (d[i][j] + (1LL) * d[i][k] * d[k][j]) % mod;
}
}
fout << d[1][n];
}