Cod sursa(job #3312472)

Utilizator iulia_morariuIuli Morariu iulia_morariu Data 28 septembrie 2025 15:36:10
Problema Culori Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <algorithm>
#include <iostream>
#include <fstream>
#include <climits>
#include <vector>
#include <stack>
#include <cmath>
// #include <bits/stdc++.h>
#define in  fin
#define out fout

using namespace std;

const int MOD = 9901;

ifstream fin("culori.in");
ofstream fout("culori.out");

int dp[512][512];

signed main(){
    ios_base::sync_with_stdio(false);
    in.tie(NULL);

    int n; in >> n;
    n = 2 * n - 1;
    int v[n];

    for(int i = 0; i < n; i++) in >> v[i];

    for(int i = 0; i < n; i++) dp[i][i] = 1;

    for(int l = 2; l <= n; l++){
        for(int i = 0; i + l - 1 < n; i++){
            int j = (i + l - 1);
            if(v[i] != v[j]) continue;
            for(int x = i + 1; x <= j; x++){
                if(v[x] != v[i]) continue;
                dp[i][j] += dp[i + 1][x - 1] * dp[x][j] % MOD;
                dp[i][j] %= MOD;
            }
        }
    }

    out << dp[0][n - 1] << '\n';

    return 0;
}