Cod sursa(job #2129920)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 13 februarie 2018 11:37:59
Problema Culori Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>
#define MOD 9901
#define DIM 256*2 + 2
using namespace std;
int n,i,j,k,l;
int a[DIM][DIM], c[DIM];
ifstream fin ("culori.in");
ofstream fout ("culori.out");

int main (){

    fin>>n;
    for (i=1;i<=2*n-1;i++)
        fin>>c[i];
    n = 2*n-1;
    for (i=1;i<=n;i++)
        a[i][i] = 1;
    /// a[i][j] = nr de arbori care pot genera subsecventa i..j
    for (l=1;l<=n;l++){
        for (i=1;i<=n-l+1;i++){
            j = i+l-1;
            if (c[i] == c[j])
                for (k=i+1;k<j;k++){
                    if (c[i+1] == c[k]){
                        a[i][j] = ( a[i][j] +  (a[i+1][k] * a[k+1][j]) ) % MOD;
                        //a[i][j] %= MOD;
                    }
                }
        }
    }

    fout<<a[1][n];


    return 0;
}