Cod sursa(job #1630025)

Utilizator TimitocArdelean Andrei Timotei Timitoc Data 4 martie 2016 21:04:46
Problema Culori Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <iostream>
#include <cstdio>
#define MAXN 520
#define MOD 9901

using namespace std;

int a[MAXN], din[MAXN][MAXN];
int n;

void citire()
{
    scanf("%d", &n);
    n = 2*n-1;
    for (int i = 1; i <= n; i++)
		scanf("%d", &a[i]);
}

void solve()
{
	for (int i = 1; i <= n; i++)
		din[i][i] = 1;
    for (int i = n; i >= 1; i--) {
        for (int j = i+1; j <= n; j++) {
            if (a[i] == a[j]) {
                for (int k = i+2; k <= j; k++)
					if (a[k] == a[i])
						din[i][j] = (din[i][j] + din[i+1][k-1] * din[k][j]) % MOD;
            }
        }
    }
    printf("%d", din[1][n]);

}

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

	citire();
	solve();

    return 0;
}