Cod sursa(job #18761)

Utilizator fireatmyselfBogdan-Alexandru Stoica fireatmyself Data 18 februarie 2007 13:58:55
Problema Culori Scor 16
Compilator c Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <stdio.h>
#define NMAX 260

int A[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] = 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+1; k < j; k++)
                            if (Val[j] == Val[k])
                               A[i][j] += (A[i+1][k-1]*A[k][j]);
                }
            }
            freopen("culori.out", "w", stdout);
            printf("%d\n", A[1][N]);

        return 0;

}