Cod sursa(job #575355)

Utilizator Andreid91Ciocan Andrei Andreid91 Data 8 aprilie 2011 10:40:11
Problema Culori Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<fstream>
#include<iostream>

#define mod 9901

using namespace std;

long long n,a[600],v[600][600];
void best()
{
	int i,j,k,N;
	
	N=2*n-1;
	for (i=1;i<=N;i++)
		v[i][i]=1;
	
	for (i=1;i<=N-2;i++)
		if (a[i]==a[i+2])
			v[i][i+2]=1;
	
	for (i=4;i<N;i+=2)
		for (j=1;j<=N-i;j++)
		if (a[j]==a[j+i])
		{
			v[j][j+i]=v[j+1][j+i-1];
			
			for (k=j+2;k<j+i;k+=2)
				v[j][j+i]+=v[j][k]*v[k+1][j+i-1];
			
			v[j][j+i]%=mod;
		}
}

void citire()
{
	int i;
	ifstream f("culori.in");
	f>>n;
	for (i=1;i<=2*n-1;i++)
		f>>a[i];
	f.close();
}

void afisare()
{
	ofstream g("culori.out");
	g<<v[1][2*n-1]%mod;
	g.close();
}

int main()
{
	citire();
	best();
	afisare();
	return 0;
}