Cod sursa(job #319532)

Utilizator toni2007Pripoae Teodor Anton toni2007 Data 31 mai 2009 23:10:06
Problema Culori Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.57 kb
#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;
}