Cod sursa(job #793190)

Utilizator scipianusFMI Ciprian Olariu scipianus Data 2 octombrie 2012 11:16:48
Problema Culori Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<fstream>
#define MOD 9901
using namespace std;
int n,N,c[600];
int nr[600][600];

int main()
{
	int i,j,k,d;
	ifstream fin("culori.in");
	fin>>n;
	N=2*n-1;
	for(i=1;i<=N;i++)
		fin>>c[i];
	fin.close();
	
	for(i=1;i<=N;i++)
		nr[i][i]=1;
	for(d=1;d<N;d++)
	{
		for(i=1,j=i+d;j<=N;i++,j++)
		{
			if((j-i+1)%2==1 && c[i]==c[j])
			{
				for(k=i+1;k<j;k++)
				{
					if((k-(i+1)+1)%2==1 && c[i+1]==c[k])
					{
						nr[i][j]+=(nr[i+1][k]*nr[k+1][j]);
						nr[i][j]%=MOD;
					}
				}
			}
		}
	}
	
	ofstream fout("culori.out");
	fout<<nr[1][N]<<"\n";
	fout.close();
	return 0;
}