Pagini recente » Borderou de evaluare (job #3303961) | Cod sursa (job #3356304) | Cod sursa (job #3326987) | Cod sursa (job #3316535) | Cod sursa (job #3338288)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("culori.in");
ofstream fout("culori.out");
const int SIZ=520;
const int MOD=9901;
int n;
int dp[SIZ][SIZ];
int v[SIZ];
void setup()
{
for(int i=1; i < SIZ; i++)
{
dp[i][i]=1;
}
}
int main()
{
setup();
cin >> n;
for(int i=1; i < 2*n; i++)
cin >> v[i];
for(int i=2; i <= 2*n-1; i+=2)
{
for(int j=1; j <= 2*n-1-i; j++)
{
for(int k=j+1; k <= i+j-1 && v[j]==v[i+j]; k++)
{
dp[j][i+j]=(dp[j][i+j]+dp[j+1][k]*dp[k+1][i+j])%MOD;
}
}
}
cout << dp[1][2*n-1];
return 0;
}