Cod sursa(job #320061)

Utilizator tvladTataranu Vlad tvlad Data 3 iunie 2009 14:02:24
Problema Culori Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <cstdio>

const int N_MAX = 512;
const int MOD = 9901;

int n, v[N_MAX];
int d[N_MAX][N_MAX];

int main() {
	freopen("culori.in","rt",stdin);
	freopen("culori.out","wt",stdout);
	scanf("%d",&n);
	n = 2*n-1;
	for (int i = 0; i < n; ++i)
		scanf("%d",&v[i]);
	for (int i = 0; i < n; ++i) d[i][i] = 1;
	for (int k = 2; k < n; k += 2) {
		for (int i = 0; i+k < n; ++i) {
			if (v[i] == v[i+k]) {
				for (int j = i+1; j < i+k; ++j) {
					if (v[i+1] == v[j]) {
						d[i][i+k] = (d[i][i+k] + d[i+1][j]*d[j+1][i+k]) % MOD;
					}
				}
			}
		}
	}
	printf("%d\n",d[0][n-1]);
	return 0;
}