Pagini recente » Cod sursa (job #573718) | Cod sursa (job #636291) | Cod sursa (job #699638) | Cod sursa (job #761257) | Cod sursa (job #897389)
Cod sursa(job #897389)
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define maxN 520
#define MOD 9901
int C[maxN], DP[maxN][maxN];
int main()
{
freopen ("culori.in", "r", stdin);
freopen ("culori.out", "w", stdout);
int N;
scanf ("%d", &N);
N = N * 2 - 1;
for (int i = 1; i <= N; ++ i)
{
scanf ("%d", &C[i]);
DP[i][i] = 1;
}
for (int l = 2; l < N; l += 2)
for (int i = 1; i <= N - l; ++ i)
{
if (C[i] != C[i + l]) continue;
for (int k = i + 1; k < i + l; ++ k)
{
if (C[i + 1] != C[k]) continue;
DP[i][i + l] += DP[i + 1][k] * DP[k + 1][i + l];
}
DP[i][i + l] %= MOD;
}
printf ("%d", DP[1][N]);
return 0;
}