Pagini recente » Cod sursa (job #170237) | Cod sursa (job #2869237) | Cod sursa (job #2398390) | Cod sursa (job #2147775) | Cod sursa (job #1151708)
#include <iostream>
#include <fstream>
#define DN 555
#define INF (1<<30)
#define MOD 9901
using namespace std;
ifstream f("culori.in");
ofstream g("culori.out");
int v[DN],dp[DN][DN],n;
void read(){
f>>n;
n= 2*n - 1;
for(int i=1;i<=2*n-1;++i)
f>>v[i];
}
int din(int i,int j){
if(dp[i][j] != INF)
return dp[i][j];
dp[i][j] = 0;
if(i == j){
dp[i][j] = 1;
return dp[i][j];
}
for(int k=i+1;k<j;++k){
dp[i][j] = (dp[i][j] + din(i+1,k) * din(k+1,j) ) %MOD;
}
return dp[i][j];
}
void init(){
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
dp[i][j] = INF;
}
void solve(){
init();
if(v[1] != v[n])
g<<0;
else
g<<din(1,n);
}
int main()
{
read();
solve();
return 0;
}