Cod sursa(job #1698523)

Utilizator LucianTLucian Trepteanu LucianT Data 4 mai 2016 17:53:07
Problema Culori Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <bits/stdc++.h>
#define MOD 9901
#define maxN 260
using namespace std;
int v[2*maxN];
int dp[2*maxN][2*maxN];
int n,i,j,l,k;
int main()
{
    freopen("culori.in","r",stdin);
    freopen("culori.out","w",stdout);
    scanf("%d\n",&n);
    n=2*n-1;
    for(i=1;i<=n;i++)
        scanf("%d",&v[i]),dp[i][i]=1;
    for(i=1;i<=n;i+=2)
        for(j=1;j+i-1<=n;j++)
    {
        l=i+j-1;
        if(v[j]==v[l])
            for(k=j+1;k<l;k++)
        {
            dp[j][l]=dp[j][l]+dp[j+1][k]*dp[k+1][l];
            if(dp[j][l]>=MOD)
                dp[i][j]-=MOD;
        }
    }
    printf("%d",dp[1][n]);
    return 0;
}