Pagini recente » Cod sursa (job #1560473) | Cod sursa (job #262532) | Cod sursa (job #3254668) | Cod sursa (job #2536625) | Cod sursa (job #2717286)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("culori.in");
ofstream fout("culori.out");
const int NMAX = 260;
const int mod = 9901;
int N, a[NMAX], dp[NMAX][NMAX];
void add_self(int &a, int b) {
a += b;
if(a >= mod)
a -= mod;
}
int main() {
fin >> N;
N = 2 * N - 1;
for(int i = 1; i <= N; ++i) {
fin >> a[i];
dp[i][i] = 1;
}
for(int lg = 2; lg <= N; ++lg)
for(int i = 1; i + lg - 1 <= N; ++i) {
int j = i + lg - 1;
if(a[i] == a[j])
for(int k = i + 1; k < j; ++k)
if(a[i + 1] == a[k])
add_self(dp[i][j], dp[i + 1][k] * dp[k + 1][j] % mod);
}
fout << dp[1][N] << '\n';
}