Cod sursa(job #1694985)

Utilizator sucureiSucureiRobert sucurei Data 26 aprilie 2016 13:29:39
Problema Culori Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <iostream>
#include <fstream>

#define DN 555
#define INF (1<<30)
#define MOD 9901
using namespace std;

ifstream f("culori.in");
ofstream g("culori.out");

int v[DN],dp[DN][DN],n;


void read(){

    f>>n;
    n= 2*n - 1;
    for(int i=1;i<=n;++i){
        f>>v[i];
        dp[i][i] = 1;
    }
}


void solve(){

    for(int l = 3 ; l <= n ; l+=2)
        for(int i=1; i + l - 1 <=n ; ++i){

            int dr = i + l - 1;
            if(v[i] == v[ dr ]){

                for(int k = i + 1 ; k < dr ; ++k)
                    dp[i][dr] = (dp[i][dr] + dp[i+1][k]*dp[k+1][dr])%MOD;
            }
        }


    g<<dp[1][n];
}

int main()
{
    read();
    solve();

    return 0;
}