Pagini recente » Cod sursa (job #2884485) | Cod sursa (job #1280829) | Cod sursa (job #2487726) | Cod sursa (job #2982238) | Cod sursa (job #2496250)
#include <cstdio>
using namespace std;
const int NMAX = 1000;
const int MOD = 9901;
int v[NMAX];
int dp[NMAX][NMAX];
int main() {
int n, m;
freopen("culori.in", "r", stdin);
freopen("culori.out", "w", stdout);
scanf("%d", &n);
m = 2 * n - 1;
for(int i = 1; i <= m; i++) {
scanf("%d", &v[i]);
dp[i][i] = 1;
}
for(int i = m; i > 0; i--) {
for(int l = 2; i + l <= m; l += 2) {
for(int k = 1; k < l; k++) {
dp[i][i + l] += dp[i][i + k] * dp[i + k][i + l];
dp[i][i + l] %= MOD;
}
if(v[i] == v[i + l]) {
dp[i][i + l] += dp[i + 1][i + l - 1];
dp[i][i + l] %= MOD;
}
}
}
printf("%d\n", dp[1][m]);
return 0;
}