Cod sursa(job #2927556)

Utilizator euyoTukanul euyo Data 20 octombrie 2022 20:34:54
Problema Culori Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin( "culori.in" );
ofstream fout( "culori.out" );

const int DIM = 260;
const int MOD = 9901;

int v[2 * DIM];
int dp[2 * DIM][2 * DIM];

int main() {
  int n;

  fin >> n;
  for ( int i = 1; i <= 2 * n - 1; ++i ) {
	fin >> v[i];
    dp[i][i] = 1;
  }
  for ( int l = 3; l <= 2 * n - 1; l += 2 ) {
	for ( int i = 1; i <= 2 * n - l; ++i ) {
	  int j = i + l - 1;
	  if ( v[i] != v[j] ) continue;
	  for ( int k = i + 1; k < j; k += 2 ) {
		dp[i][j] = (dp[i][j] + dp[i + 1][k] * dp[k + 1][j]) % MOD;
	  }
	}
  }
  fout << dp[1][2 * n - 1];
  fin.close();
  fout.close();
  return 0;
}