Cod sursa(job #800305)

Utilizator matei_cChristescu Matei matei_c Data 21 octombrie 2012 12:19:08
Problema Culori Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;

#define maxn 600
#define mod 9901

int n ;
int cul[maxn] ;
int sol[maxn][maxn] ;

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

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

}