Cod sursa(job #478942)

Utilizator Addy.Adrian Draghici Addy. Data 21 august 2010 12:11:45
Problema Culori Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <cstdio>

#define NMAX 260
#define MOD 9901

int C[2 * NMAX], A[2 * NMAX][2 * NMAX], n, i, j, lg, k;

int main () {
	
	freopen ("culori.in", "r", stdin);
	freopen ("culori.out", "w", stdout);
	
	scanf ("%d", &n);
	
	for (i = 1; i <= 2 * n - 1; i++) {
		scanf ("%d", &C[i]);
		A[i][i] = 1;
	}
	
	for (lg = 3; lg <= 2 * n - 1; lg += 2)
		for (i = 1; i + lg - 1 <= 2 * n - 1; i++) {
			j = i + lg - 1;
			if (C[i] == C[j] && (i + j) % 2 == 0) {
				for (k = i + 1; k < j; k++)
					A[i][j] = (A[i][j] + (A[i+1][k] * A[k+1][j]) % MOD) % MOD;
			}
		}
	
	printf ("%d", A[1][2 * n - 1]);
	
	return 0;
}