Cod sursa(job #1116824)

Utilizator Impaler_009Mihai Nitu Impaler_009 Data 22 februarie 2014 20:40:21
Problema Culori Scor 44
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>

#define mod 9901

using namespace std;

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

int n,c[501];
int dp[501][501];

int main()
{
    fin>>n;

    n = 2*n-1;

    for (int i=1; i<=n; ++i)
        fin>>c[i];

    for (int i=1; i<=n; ++i)
            dp[i][i] = 1;

    for (int i=2; i<=n; i+=2)
    {
        for (int j=1; j+i <=n; ++j)
        {
            if (c[j] != c[i+j])
                continue;

            for (int k=j+1; k<=j+i; ++k)
            {
                if (c[k] == c[j])
                dp[j][i+j] += dp[j+1][k-1]*dp[k][i+j]%mod;
                if (dp[j][i+j] >= mod) dp[j][i+j] -= mod;
            }
        }
    }

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