Cod sursa(job #3288988)

Utilizator DarianaButnaru Dariana-Maria Dariana Data 25 martie 2025 09:45:54
Problema Parantezare optima de matrici Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");

int dp[101][101],d[101],n;
int main()
{ int i,j,dig,k;
  fin>>n;
for(i=1;i<=n+1;i++)
    fin>>d[i];
for(i=1;i<=n;i++)
    dp[i][i+1]=d[i]*d[i+1]*d[i+2];

for(dig=3;dig<=n;dig++)
    for(i=1,j=dig;j<=n;i++,j++)
{   int vmin=INT_MAX;

    for(k=1;k<=j-1;k++)
    {
        int z=dp[i][k]+dp[k+1][j]+(d[i]*d[k+1]*d[j+1]);
        if(z<vmin)
        {
            vmin=z;
            dp[i][j]=z;
            dp[j][i]=k;

        }
    }
}
/*for(i=1;i<=n;i++,cout<<'\n')
    for(j=1;j<=n;j++)
    cout<<dp[i][j]<<" ";
*/

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