Cod sursa(job #1511603)

Utilizator iordache.bogdanIordache Ioan-Bogdan iordache.bogdan Data 26 octombrie 2015 22:33:33
Problema Culori Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>
#include <algorithm>
#include <cstring>
#include <vector>

#define DIM 300
#define MOD 9901
#define infile "culori.in"
#define outfile "culori.out"

using namespace std;

int dp[DIM][DIM], color[DIM];

int main() {

	ifstream fin(infile);
	ofstream fout(outfile);

	int n;

	fin >> n;

	n = 2 * n - 1;

	for (int i = 1; i <= n; ++i) {

		fin >> color[i];

		dp[i][i] = 1;

	}

	for (int len = 3; len <= n; len += 2) {

		for (int i = 1; i + len - 1 <= n; ++i) {

			int j = i + len - 1;

			if (color[i] != color[j])
				continue;

			for (int k = i + 1; k < j; ++k) {

				dp[i][j] = (dp[i][j] + dp[i + 1][k] * dp[k + 1][j]) % MOD;

			}

		}

	}

	fout << dp[1][n];

	return 0;

}