Cod sursa(job #3192111)

Utilizator AndreiBOTOBotocan Andrei AndreiBOTO Data 11 ianuarie 2024 16:30:17
Problema Culori Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <bits/stdc++.h>

#pragma optimize GCC ("Ofast")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")

///#include <tryhardmode>
///#include <GODMODE::ON>

using namespace std;

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

const int NMAX=300;
const int MOD=9901;
int dp[NMAX][NMAX];
int v[NMAX];

int main()
{
    ios_base::sync_with_stdio(false);
    fin.tie(NULL);
    fout.tie(NULL);

    int n,i,j,l,m;
    fin>>n;
    m=2*n-1;
    for(i=1;i<=m;i++)
    {
        fin>>v[i];
        dp[i][i]=1;
    }
    for(i=2;i<m;i+=2)
    {
        for(j=1;j<=m-i;j++)
        {
            int k=j+i;
            if(v[j]==v[k])
            {
                for(l=j+1;l<k;l++)
                {
                   if(v[j+1]==v[l])
                   {
                       dp[j][k]+=dp[j+1][l]*dp[l+1][k];
                       dp[j][k]%=MOD;
                   }
                }
            }
        }
    }
    fout<<dp[1][m];
    fin.close();
    fout.close();
    return 0;
}