Cod sursa(job #3315522)

Utilizator Dia3141Costea Diana Stefania Dia3141 Data 14 octombrie 2025 15:16:20
Problema Culori Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>
#define nmax 260
#define mod 9901
using namespace std;
ifstream cin("culori.in");
ofstream cout("culori.out");
int n,dp[2*nmax][2*nmax],v[2*nmax];
int main()
{
    cin>>n;
    for(int i=1;i<2*n;i++){
        cin>>v[i];
        dp[i][i]=1;
    }
    for(int lg=2;lg<2*n;lg++)
        for(int i=1;i<2*n-lg+1;i++){
            int j=i+lg-1;
            if(v[i]==v[j])
                for(int k=i;k<j;k++)
                    if(v[i]==v[k])
                        dp[i][j]=(dp[i][j]+dp[i][k]*dp[k+1][j-1]%mod)%mod;
        }
    cout<<dp[1][2*n-1];
    return 0;
}
/// dp[i][j] = nr de moduri de a construi arborele daca secventa de la i la j reprezinta liniarizarea sa