Cod sursa(job #1513134)

Utilizator CostanMiriamCostan Miriam CostanMiriam Data 29 octombrie 2015 00:31:59
Problema Culori Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<fstream>

#define DIM 2 * 256 + 2
#define MOD 9901

using namespace std;

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

int n;

int v[DIM];

int dp[DIM][DIM];

int main () {

    fin >> n;

    int lenght = 2 * n - 1;

    for (int i = 1; i <= lenght; i++){

        fin >> v[i];

        dp[i][i] = 1;

    }

    for (int l = 1; l <= lenght; l++) {

        for (int i = 1; i <= lenght - l + 1; i++) {

            int j = i + l - 1;

            if(v[i] != v[j])
                continue;

            for(int k = i + 1; k < j; k++){

                if(v[i + 1] != v[k])
                    continue;

                dp[i][j] = (dp[i][j] + dp[i + 1][k] * dp[k + 1][j]) % MOD;

            }

        }

    }

    fout << dp[1][lenght] << "\n";

    return 0;

}

//Miriam e tare!