Pagini recente » Rating Andrei-George Iclodean (andrei22george) | Cod sursa (job #2247714) | Cod sursa (job #2981040) | Cod sursa (job #231383) | Cod sursa (job #2087239)
#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;
n = 2*n-1;
for (i = 1; i <= n; i++)
f >> v[i];
for (i = 1; i <= n; i++)
dp[i][i] = 1;
for (l = 2; l <= n; l+=2) {
for (i = 1; i+l <= n; i++) {
j = i+l;
if (v[i] != v[j]) continue;
for (k = i+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][n];
return 0;
}