Pagini recente » Cod sursa (job #2419250) | Cod sursa (job #1945212) | Cod sursa (job #2267838) | Cod sursa (job #1192329) | Cod sursa (job #2346058)
#include <bits/stdc++.h>
#define MAXN 260
#define MOD 9901
int N, V[MAXN];
int DP[MAXN][MAXN];
std::ifstream In ("culori.in");
std::ofstream Out("culori.out");
void Citire() {
In >> N;
N = 2*N-1;
for (int i=1; i<=N; ++i)
In >> V[i];
}
void Rezolvare() {
for (int i=1; i<=N; ++i)
DP[i][i] = 1;
for (int len=2, i, j; len<=N; ++len) {
for (i=1; i+len-1<=N; ++i) {
if (V[i] == V[i+len-1]) {
DP[i][i+len-1] = DP[i+1][i+len-2];
for (j=i+1; j<i+len-1; ++j)
if (V[j] == V[i])
DP[i][i+len-1] += DP[i][j] * DP[j][i+len-1],
DP[i][i+len-1] %= MOD;
}
}
} Out << DP[1][N] << '\n';
}
int main()
{
Citire();
Rezolvare();
return 0;
}