Cod sursa(job #2496251)

Utilizator stefan_creastaStefan Creasta stefan_creasta Data 20 noiembrie 2019 16:26:53
Problema Culori Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <cstdio>
using namespace std;
const int NMAX = 1000;
const int MOD = 9901;
int v[NMAX];
int dp[NMAX][NMAX];

int main() {
    int n, m;
    freopen("culori.in", "r", stdin);
    freopen("culori.out", "w", stdout);
    scanf("%d", &n);
    m = 2 * n - 1;
    for(int i = 1; i <= m; i++) {
        scanf("%d", &v[i]);
        dp[i][i] = 1;
    }
    for(int i = m; i > 0; i--) {
        for(int l = 2; i + l <= m; l += 2) {
            if(v[i] == v[i + l]) {
                for(int k = 1; k < l; k++) {
                    dp[i][i + l] += dp[i + 1][i + k] * dp[i + k + 1][i + l];
                    dp[i][i + l] %= MOD;
                }
            }
        }
    }
    printf("%d\n", dp[1][m]);
    return 0;
}