Cod sursa(job #1280899)

Utilizator MKLOLDragos Ristache MKLOL Data 2 decembrie 2014 17:52:52
Problema Culori Scor 16
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<stdio.h>
#define MOD 9901
int v[666];
int N;
int din[666][666];


int main(){
    freopen("culori.in","r",stdin);
    freopen("culori.out","w",stdout);
    scanf("%d",&N);
    N=N*2-1;
    for(int i=1;i<=N;++i){
        scanf("%d",&v[i]);
        din[i][i]=1;
    }

    for(int sz=2;sz<=N;sz+=2)
        for(int i=1;i<=N;++i){
            din[i][i+sz] = din[i+1][i+sz-1];
            for(int k=i+2;k<i+sz-1;++k){

                if(v[i] == v[k] && v[i+1] == v[k-1]){
                    din[i][i+sz] += (din[i+1][k-1] * din[k][i+sz]);
                    din[i][i+sz] %= MOD;
                }
            }
    }
    printf("%d\n",din[1][N]);
}