Cod sursa(job #708012)

Utilizator mihaipopa12Popa Mihai mihaipopa12 Data 6 martie 2012 10:59:41
Problema Culori Scor 24
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<stdio.h>

#define maxn 257
#define mod 9901

FILE*f=fopen("culori.in","r");
FILE*g=fopen("culori.out","w");

int n,i,j,k,l;
int v[maxn<<1],D[maxn<<1][maxn<<1];

int main () {
	
	fscanf(f,"%d",&n);
	for ( i = 1 ; i <= n + n - 1 ; ++i ){
		fscanf(f,"%d",&v[i]);
	}
	
	int N = n+n-1;
	for ( i = 1 ; i <= N ; ++i ){
		D[i][i] = 1;
	}
	
	for ( l = 3 ; l <= N ; l += 2 ){
		for ( i = 1 ; i + l - 1 <= N ; ++i ){
			j = i + l - 1;
			if ( v[i] == v[j] ){
				D[i][j] = D[i+1][j-1];
				for ( k = i + 2 ; k < j ; ++k ){
					D[i][j] = (D[i][j] + D[i+1][k] * D[k+1][j]) % mod;
				}
			}
		}
	}
	
	fprintf(g,"%d\n",D[1][N]);
	
	fclose(f);
	fclose(g);
	
	return 0;
}