Cod sursa(job #1280613)

Utilizator timicsIoana Tamas timics Data 2 decembrie 2014 10:48:54
Problema Culori Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<stdio.h>
#include<iostream>
#define MOD 9901
using namespace std;
int a[600],N,d[600][600];
int main() {
    freopen("culori.in","r",stdin);
    freopen("culori.out","w",stdout);
    scanf("%d",&N);
    for(int i=1;i<=2*N-1;++i) {
        scanf("%d",&a[i]);
        d[i][i] = 1;
    }
    for(int dif=2;dif<=2*N-1;++dif) {
        for(int i=1;i+dif<=2*N-1;++i) {
            int j = i+dif;
            if(a[i]!=a[j]) continue;
            d[i][j] = d[i+1][j-1];
            for(int k=i+2;k<=j-2;++k) {
                if(a[k]==a[j]) {
                    d[i][j] = (d[i][j] + d[i+1][k-1]*d[k][j])%MOD;
                }
            }
        }
    }
    printf("%d\n",d[1][2*N-1]);
    return 0;
}