Cod sursa(job #2230052)

Utilizator liviu2000Dragomirescu Liviu liviu2000 Data 8 august 2018 22:02:57
Problema Culori Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <bits/stdc++.h>
#define N 260
#define MOD 9901

using namespace std;

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

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

int main()
{
    int n , i , lg , j , k ;
    fin >> n ;
    n = 2*n-1 ;
    for ( i = 1 ; i <= n ; i++ )
    {
        dp[i][i] = 1 ;
        fin >> v[i] ;
    }
    for ( lg = 3 ; lg <= n ; lg = lg+2 )
    {
        for ( i = 1 ; i + lg-1 <= n ; i++ )
        {
            j = lg+i -1 ;
            if ( v[i] == v[j] )
                for ( k = i+1 ; k < j ; k++ )
                    if ( v[i+1] == v[k] )
                        dp[i][j] = (dp[i][j]+dp[i+1][k]*dp[k+1][j]) % MOD ;
        }
    }
    fout << dp[1][n] ;
}