Cod sursa(job #2413204)
Utilizator | Dart Monkey lucametehau | Data | 23 aprilie 2019 09:07:20 |
---|---|---|---|
Problema | Culori | Scor | 24 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.58 kb |
#include <fstream>
using namespace std;
ifstream cin ("culori.in");
ofstream cout ("culori.out");
const int MOD = 9901;
int n;
int v[270], dp[270][270];
int main() {
cin >> n;
n *= 2; n--;
for(int i = 1; i <= n; i++)
cin >> v[i], dp[i][i] = 1;
for(int i = n - 2; i >= 1; i--) {
for(int j = i + 2; j <= n; j++) {
if(v[i] == v[j]) {
for(int k = i + 2; k <= j; k++) {
if(v[k] == v[i])
dp[i][j] = (dp[i][j] + dp[i + 1][k - 1] * dp[k][j]) % MOD;
}
}
}
}
cout << dp[1][n];
return 0;
}