Cod sursa(job #1561426)

Utilizator bogdanmarin69Bogdan Marin bogdanmarin69 Data 4 ianuarie 2016 01:54:37
Problema Culori Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <fstream>
using namespace std;
ifstream cin("culori.in");
ofstream cout("culori.out");
const int MOD = 9901, MAX = 513;
int n, m, v[MAX], dp[MAX][MAX];
int main()
{
    cin>>n;
    m = 2*n-1;
    for(int i=1; i<=m; i++)
        cin>>v[i];
    for(int i=1; i<=m; i++){
        dp[i][i] = 1;
    }
    for(int lg = 3; lg<=m; lg += 2)
        for(int i=1; i+lg-1<=m; i++){
            int j = i+lg-1;
            if(v[i]!=v[j]) continue;
            for(int k=i+1; k<j; k += 2)
                if(v[k+1]==v[i])
                    dp[i][j] = (dp[i][j] + dp[i+1][k]*dp[k+1][j])%MOD;
        }
    cout<<dp[1][m];
    return 0;
}