Cod sursa(job #961073)

Utilizator primulDarie Sergiu primul Data 11 iunie 2013 16:51:08
Problema Culori Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
#include <iostream>
using namespace std;
 
#define in "culori.in"
#define out "culori.out"
#define N 520
#define MOD 9901
 
int v[N], a[N][N], n;
 
int main () {
    ifstream fin (in);
    fin >> n;
    n = 2 * n - 1;
    for (int i = 1; i <= n; ++i) {
        fin >> v[i];
        a[i][i] = 1;
    }
    fin.close();
    for (int d = 1; d < n; ++d)
        for (int j = 1; j + d <= n; ++j)
            if (v[j] == v[j + d])
                for (int k = j + 1; k <= j + d; ++k) {
                    a[j][j + d] = a[j][j + d] + a[j + 1][k] * a[k + 1][j + d];
                    a[j][j + d] %= MOD;
                }
    ofstream fout (out);
    fout << a[1][n];
    fout.close();
    return 0;
}