Pagini recente » Cod sursa (job #17309) | Cod sursa (job #278671) | Cod sursa (job #2670039) | Cod sursa (job #2390160) | Cod sursa (job #18803)
Cod sursa(job #18803)
#include <stdio.h>
#define NMAX 260
int A[2*NMAX][2*NMAX], Val[2*NMAX], N;
int main()
{
int l, i, j, k;
freopen("culori.in", "r", stdin);
scanf("%d", &N);
N = 2*N-1;
for (i = 1; i <= N; i++)
scanf("%d", &Val[i]);
for (i = 1; i <= N; i++) A[i][i] = A[i][i+1] = 1;
for (l = 2; l <= N; l++)
for (i = 1; i <= N; i++)
{
j = i+l-1;
if (Val[i] == Val[j])
{
A[i][j] = A[i+1][j-1];
for (k = i+2; k < j; k++)
if (Val[i+1] == Val[k-1] && Val[k] == Val[j-1])
A[i][j] += (A[i+1][k-1]*A[k][j-1]);
}
}
freopen("culori.out", "w", stdout);
printf("%d\n", A[1][N]);
return 0;
}