Cod sursa(job #1205143)

Utilizator diana97Diana Ghinea diana97 Data 5 iulie 2014 14:27:09
Problema Culori Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f ("culori.in");
ofstream g ("culori.out");

const int MOD = 9901;
const int NMAX = 600;

int n;
int v[NMAX], sol[NMAX][NMAX];

void citeste () {
    f >> n; n = 2 * n - 1;
    for (int i = 1; i <= n; i++) f >> v[i], sol[i][i] = 1;
}

void rezolva () {
    for (int lg = 3; lg <= n; lg += 2)
        for (int i = 1; i + lg - 1 <= n; i++) {
            int j = i + lg - 1;
            if (v[i] == v[j])
                for (int k = i + 1; k < j; k++) sol[i][j] = (sol[i][j] + sol[i + 1][k] * sol[k + 1][j]) % MOD;
        }
    g << sol[1][n] << '\n';
}

int main () {
    citeste();
    rezolva();
    return 0;
}