Pagini recente » Cod sursa (job #87746) | Cod sursa (job #120638) | Cod sursa (job #2099401) | Cod sursa (job #1296533) | Cod sursa (job #1570658)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("culori.in");
ofstream out("culori.out");
const int MAX_N = 256;
const int MOD = 9901;
int D[2 * MAX_N][2 * MAX_N];
int C[2 * MAX_N];
int main() {
int n, i, j, k;
in >> n;
for(i = 1; i <= 2 * n - 1; i++) {
in >> C[i];
D[i][i] = 1;
}
for(i = 3; i <= 2 * n - 1; i += 2) {
for(j = 1; j <= 2 * n - i; j++) {
if(C[j] == C[j + i - 1]) {
for(k = j + 1; k < j + i - 1; k++) {
if(C[j + 1] == C[k]) {
D[j][j + i - 1] += (D[j + 1][k] * D[k + 1][j + i - 1]) % MOD;
}
}
}
}
}
out << D[1][2 * n - 1] << '\n';
return 0;
}