Pagini recente » Cod sursa (job #2013035) | Profil tavi.belu1994 | Cod sursa (job #1845814) | Cod sursa (job #1762879) | Cod sursa (job #2496145)
#include <cstdio>
using namespace std;
const int MAX_N = 256;
const int MOD = 9901;
int a[1 + MAX_N];
int dp[1 + MAX_N][1 + MAX_N];
int main() {
freopen("culori.in", "r", stdin);
freopen("culori.out", "w", stdout);
int n;
scanf("%d", &n);
n = (2 * n) - 1;
for (int i = 1; i <= n; i++) {
scanf("%d", &a[i]);
dp[i][i] = 1;
}
for (int sz = 2; sz <= n; sz++) {
for (int i = 1; i + sz - 1 <= n; i++) {
int j = i + sz - 1;
if (a[i] != a[j] || (i - j + 1) % 2 == 0)
continue;
for (int k = i; k <= j; k++) {
/// i--k, k--j
if (a[i] == a[k])
dp[i][j] = (dp[i][j] + (dp[i + 1][k - 1] * dp[k][j]) % MOD) % MOD;
}
}
}
printf("%d\n", dp[1][n]);
return 0;
}