Cod sursa(job #524665)

Utilizator DraStiKDragos Oprica DraStiK Data 22 ianuarie 2011 15:51:56
Problema Culori Scor 4
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <algorithm>
using namespace std;

#define MOD 9901
#define DIM 260

int bst[DIM<<1][DIM<<1];
int v[DIM<<1];
int n;

void read ()
{
    int i;

    scanf ("%d",&n);
    for (i=1; i<(n<<1); ++i)
        scanf ("%d",&v[i]);
}

void solve ()
{
    int i,j,lg;

    for (i=1; i<(n<<1); ++i)
        bst[i][i]=1;

    for (lg=1; lg<(n<<1); ++lg)
        for (i=1; i+lg-1<(n<<1); ++i)
            if (v[i]==v[i+lg-1])
                for (j=i+1; j<i+lg; ++j)
                    bst[i][i+lg-1]=(bst[i][i+lg-1]+bst[i+1][j-1]*bst[j][i+lg-1])%MOD;
    printf ("%d",bst[1][n]);
}

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

    read ();
    solve ();

    return 0;
}