Cod sursa(job #2604895)

Utilizator CraniXortDumitrescul Eduard CraniXort Data 23 aprilie 2020 19:47:33
Problema Culori Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>

//std::ifstream fin ("input.txt");
//std::ofstream fout ("output.txt");

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

int dp[1005][1005];
int x[1005];

int main()
{
    int V, n, i, j, k;
    int mod = 9901;
    fin >> V;
    n = 2 * V - 1;
    for (i=1; i<=n; i++)
        fin >> x[i];

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

    for (int len = 2; len < n; len+=2){
        for (i=1; i<=n-len; i++){
            j = i + len;
            if (x[i] == x[j])
            for (k=i+1; k<j; k++)
                if (x[i+1] == x[k])
                dp[i][j] = (dp[i][j] + dp[i+1][k] * dp[k+1][j]) % mod;
        }
    }

    fout << dp[1][n] << '\n';

    return 0;
}