Pagini recente » Cod sursa (job #538078) | Cod sursa (job #1535603) | Cod sursa (job #708574) | Cod sursa (job #34860) | Cod sursa (job #1502429)
#include <cstdio>
#include <cstring>
#include <algorithm>
#define maxN 256
#define mod 9901
using namespace std;
int i, j, k, n, v[maxN * 2];
int dp[maxN * 2][maxN * 2];
void read()
{
freopen("culori.in", "r", stdin);
scanf("%d", &n);
for (i = 1; i < 2 * n; ++ i)
scanf("%d", &v[i]);
}
void solve()
{
for (i = 2 * n - 1; i >= 1; -- i)
for (j = 1; j < 2 * n; ++ j)
if (v[i] == v[j])
{
if (i == j)
dp[i][j] = 1;
else
for (k = i + 1; k <= j; ++ k)
if (v[i + 1] == v[k])
dp[i][j] = (dp[i][j] + dp[i + 1][k] * dp[k + 1][j]) % mod;
}
}
void write()
{
freopen("culori.out", "w", stdout);
printf("%d", dp[1][n * 2 - 1]);
}
int main()
{
read();
solve();
write();
return 0;
}