Cod sursa(job #316643)

Utilizator CezarMocanCezar Mocan CezarMocan Data 20 mai 2009 16:40:44
Problema Culori Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <cstdio>
#include <algorithm>
#define mod 9901
#define maxn 260

using namespace std;

int v[2 * maxn];
int d[2 * maxn][2 * maxn];
int n, i, j, k;

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

    scanf("%d", &n);
    for (i = 1; i <= 2 * n - 1; i++) {
        scanf("%d", &v[i]);
        d[i][i] = 1;
    }
    
    n = 2 * n - 1;
    
    for (i = n; i >= 1; i--)
        for (j = i + 1; j <= n; j++) if (v[i] == v[j])
            for (k = i + 1; k < j; k++)
                if (v[k] == v[i + 1])
                    d[i][j] = (d[i][j] + d[i + 1][k] * d[k + 1][j]) % mod;
                    
    printf("%d\n", d[1][n]);

    return 0;
}