Cod sursa(job #484002)

Utilizator tamas_iuliaTamas Iulia tamas_iulia Data 11 septembrie 2010 14:13:25
Problema Culori Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <stdio.h>
#define Nmax 260
#define Mod 9901

int A[Nmax*2][Nmax*2];
int V[Nmax*Nmax];
int N;

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