Cod sursa(job #169479)

Utilizator gabitzish1Gabriel Bitis gabitzish1 Data 1 aprilie 2008 18:42:36
Problema Culori Scor 28
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <stdio.h>
long int n, v[600], a[600][600], mod;

void citire()
{
	freopen("culori.in","r",stdin);
	freopen("culori.out","w",stdout);

	scanf("%ld",&n);
	int i;
	for (i = 1; i <= 2 * n - 1; i++) { scanf("%ld",&v[i]); a[i][i] = 1;}
	n *= 2; n--;
}

void calcul()
{
	mod = 9901;
	int i, j, k;

	for (i = n; i >= 1; i--)
		for (j = n; j >= i; j--)
		{
			if ((i + j) % 2 == 0)
				for (k = i + 1; k < j; k++) 
				{
					if (v[i + 1] == v[k]) a[i][j] += (a[i+1][k] * a[k+1][j]);
					a[i][j] %= mod;
				}
		}
	printf("%ld\n",a[1][n]);
}

int main()
{
	citire();
	calcul();
	return 0;
}