Pagini recente » Cod sursa (job #3363613) | Cod sursa (job #3363978) | Cod sursa (job #3363637) | Cod sursa (job #3363616) | Cod sursa (job #3363749)
// 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;
}