Cod sursa(job #2329088)

Utilizator patcasrarespatcas rares danut patcasrares Data 26 ianuarie 2019 12:39:38
Problema Culori Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <fstream>
using namespace std;
ifstream fin("culori.in");
ofstream fout("culori.out");
const int DN=605,M=9901;
int n,a[DN],dp[DN][DN];
int main()
{
	fin>>n;
	n=2*n-1;
	for(int i=1;i<=n;i++)
		fin>>a[i];
	for(int l=1;l<=n;l++)
	{
		for(int i=1;i<=n-l+1;i++)
		{
			int j=i+l-1;
			if(i==j)
			{
				dp[i][j]=1;
				continue;
			}
			if(a[i]!=a[j])
			{
				dp[i][j]=0;
				continue;
			}
			dp[i][j]=dp[i+1][j-1];
			for(int h=i+1;h<j;h++)
				if(a[h]==a[i])
					dp[i][j]=(dp[i][j]+dp[i][h]*dp[h+1][j-1])%M;
		}
	}
	fout<<dp[1][n];
}