Cod sursa(job #1511892)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 27 octombrie 2015 11:52:01
Problema Culori Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <cstdio>

#define DIM 520
#define MOD 9901
using namespace std;

int N;
int D[DIM][DIM], V[DIM];

int main ()
{
    freopen ("culori.in" , "r", stdin );
    freopen ("culori.out", "w", stdout);

    scanf ("%d", &N); N = 2*N-1;

    for (int i = 1; i <= N; i ++)
    {
        scanf ("%d", &V[i]);
        D[i][i] = 1;
    }

    for (int strLen = 1; strLen <= N; strLen ++)
        for (int i = 1, j = i + strLen - 1; j <= N; i ++, j ++)
            if (V[i] == V[j])
                for (int k = i + 1; k < j; k ++)
                    if (V[i+1] == V[k])
                        D[i][j] = (D[i][j] + D[i+1][k] * D[k+1][j]) % MOD;

    printf ("%d\n", D[1][N]);

    fclose (stdin );
    fclose (stdout);

    return 0;
}