1 solutions

  • 4
    @ 2024-7-31 15:00:11
    #include<bits/stdc++.h>
    using namespace std;
    const int N=210;
    int f[N][N];
    int w[N];
    int main()
    {
        int n;
        cin>>n;
        for(int i=1;i<=n;i++)
        {
            cin>>w[i];
            w[i+n]=w[i];
        }
        for(int i=2;i<=n+1;i++)
        {
            for(int j=1;j+i-1<=n*2;j++)
            {
                int r=i+j-1;
                if(j+1==r)
                {
                    f[j][r]=0;
                }
                else
                {
                    for(int k=j+1;k<r;k++)
                    {
                        f[j][r]=max(f[j][r],f[j][k]+f[k][r]+w[j]*w[k]*w[r]);
                    }
                }
            }
        }
        int res=0;
        for(int i=1;i<=n;i++)
        {
            int j=i+n;
            res=max(res,f[i][j]);
        }
        cout<<res;
        return 0;
    }
    
    • 1

    Information

    ID
    998
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    7
    Tags
    (None)
    # Submissions
    58
    Accepted
    15
    Uploaded By