Pagini recente » Cod sursa (job #1262129) | Cod sursa (job #1188117) | Cod sursa (job #1193645) | Cod sursa (job #1723759) | Cod sursa (job #2087232)
#include <fstream>
using namespace std;
ifstream f("culori.in");
ofstream g("culori.out");
const int mod = 9901;
const int nmax = 515;
int n, i, j, v[nmax], l, k;
int dp[2*nmax+1][2*nmax+1];
int main() {
f >> n;
for (i = 1; i < 2*n; i++)
f >> v[i];
for (i = 1; i < 2*n; i++)
dp[i][i] = 1;
for (l = 2; l < 2*n-1; l+=2) {
for (i = 1; i+l < 2*n; i++) {
j = i+l;
if (v[i] != v[j]) continue;
for (k = 1; k < j; k++) {
if (v[i+1] == v[k]) {
dp[i][j] = (dp[i][j] + (dp[i+1][k]*dp[k+1][j])%mod)%mod;
}
}
;
}
}
g << dp[1][2*n-1];
return 0;
}