Pagini recente » Cod sursa (job #915624) | Cod sursa (job #2949507) | Cod sursa (job #1332408) | Cod sursa (job #1614413) | Cod sursa (job #1151723)
#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<=n;++i){
f>>v[i];
dp[i][i] = 1;
}
}
void solve(){
for(int l = 3 ; l <= n ; l+=2)
for(int i=1; i + l - 1 <=n ; ++i){
int dr = i + l - 1;
if(v[i] == v[ dr ]){
for(int k = i + 1 ; k < dr ; ++k)
dp[i][dr] = (dp[i][dr] + dp[i+1][k]*dp[k+1][dr])%MOD;
}
}
g<<dp[1][n];
}
int main()
{
read();
solve();
return 0;
}