Cod sursa(job #3363749)

Utilizator Ilie_MityIlie Dumitru Ilie_Mity Data 21 august 2026 23:50:26
Problema Culori Scor 4
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
// Ilie "The-Winner" Dumitru
// Dumnezeu sa o ierte
#include<bits/stdc++.h>
#define sz(x) ((int)(x).size())
#define all(x) (x).begin(), (x).end()
#define err(...) fprintf(stderr, __VA_ARGS__)
using ll=long long;
using dbl=long double;
constexpr int NMAX=512;
constexpr ll MOD=9'901;

int N;
int v[NMAX];
int dp[NMAX][NMAX];

int run()
{
	int i, j, k;

	for(i=N-1;i>-1;--i)
	{
		dp[i][i]=1;
		for(j=i+2;j<N;j+=2)
		{
			if(v[i]==v[j])
			{
				dp[i][j]=dp[i+1][j-1];
				for(k=i+2;k<j;k+=2)
					if(v[i]==v[k])
						dp[i][j]+=dp[i][k]*dp[k][j]%MOD;
			}
			dp[i][j]%=MOD;
		}
	}

	return dp[0][N-1];
}

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

	fscanf(f, "%d", &N);
	N=N*2-1;
	for(i=0;i<N;++i)
		fscanf(f, "%d", v+i);
	fprintf(g, "%d\n", run());

	fclose(f);
	fclose(g);
	return 0;
}