Pagini recente » Cod sursa (job #2818755) | Profil UCV_GEORGESCU | Cod sursa (job #3221862) | Cod sursa (job #1200701) | Cod sursa (job #319532)
Cod sursa(job #319532)
#include <stdio.h>
#define maxN 530
#define MOD 9901
int C[maxN][maxN], N, A[maxN];
int main () {
int i, j, k;
freopen("culori.in", "r", stdin);
freopen("culori.out", "w", stdout);
for (scanf("%d", &N), i = 1; i <= 2 * N - 1; ++ i) {
scanf("%d", &A[i]);
C[i][i] = 1;
}
for (i = 2 * N - 1; i >= 1; -- i)
for (j = i + 1; j <= 2 * N - 1; ++ j) {
if (A[i] != A[j]) continue;
for (k = i + 1; k < j; ++ k)
C[i][j] = (C[i][j] + (A[i + 1] == A[k]) * (C[i + 1][k] * C[k + 1][j])) % MOD;
}
printf("%d\n", C[1][2 * N - 1]);
return 0;
}