Pagini recente » Cod sursa (job #1187059) | Cod sursa (job #2213585) | Cod sursa (job #2286984) | Cod sursa (job #2127991) | Cod sursa (job #19337)
Cod sursa(job #19337)
#include <cstdio>
using namespace std;
const char iname[] = "culori.in";
const char oname[] = "culori.out";
#define MAX_N 512
int R[MAX_N][MAX_N];
int main(void)
{
freopen(iname, "r", stdin);
int n;
int C[MAX_N];
int i;
int j;
int k;
int d;
for (scanf("%d", & n), i = 1; i <= 2 * n - 1; ++ i)
scanf("%d", C + i);
for (i = 1; i <= 2 * n - 1; ++ i)
R[i][i] = 1;
for (d = 1; d <= 2 * n - 2; ++ d) {
for (i = 1; i <= 2 * n - 1 - d; ++ i) {
j = i + d;
if (C[i] != C[j])
continue ;
for (k = i + 1; k < j; ++ k) {
if (C[i + 1] == C[k])
R[i][j] += R[i + 1][k] * R[k + 1][j];
}
}
}
freopen(oname, "w", stdout);
printf("%d\n", R[1][2 * n - 1]);
return 0;
}