Cod sursa(job #2682778)
Utilizator | Predescu Sebastian Ion PredescuSebastianIon | Data | 9 decembrie 2020 16:38:04 |
---|---|---|---|
Problema | Culori | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.73 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream f("culori.in");
ofstream g("culori.out");
const int NMAX=256,MOD=9901;
int n,v[5*NMAX],dp[5*NMAX][5*NMAX];
int main()
{
f>>n;
n=2*n-1;
for(int i=1; i<=n; i++)
{
f>>v[i];
dp[i][i]=1;
}
for(int l=2; l<=n-1; l+=2)
{
for(int i=1; i<=n-l; i++)
{
int j=i+l;
if(v[i]==v[j])
{
for(int k=i; k<=j; k++)
{
if(v[i]==v[k])
{
dp[i][j]=(dp[i][j]+(dp[i+1][k-1]*dp[k][j])%MOD)%MOD;
}
}
}
}
}
g<<dp[1][n];
return 0;
}