Cod sursa(job #21915)

Utilizator damaDamaschin Mihai dama Data 25 februarie 2007 09:03:24
Problema Culori Scor 16
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <stdio.h>
#include <string.h>
#define nmax 257



int main()
{
	freopen("culori.in","r",stdin);
	freopen("culori.out","w",stdout);

	int i, j, k, n, v[nmax], c[nmax][nmax], len;

	scanf("%d", &n);
	memset(c, 0, sizeof(c));
	
	for(i = 1; i < 2 * n; ++i)
	{
		scanf("%d", &v[i]);
		c[i][i] = 1;
	}
	
	for(len = 2; len <= 2 * n - 2; len += 2)
	{
		for(i = 1; i + len <= 2 * n - 1; ++i)
		{
			if(v[i] == v[i + len])
			{
				for(j = i + 1; j < i + len; ++j)
				{
					c[i][i + len] += c[i + 1][j] * c[j + 1][i + len];
				}
			}
		}
	}
	
	printf("%d\n",c[1][2 * n - 1]);
	
	return 0;
}