Cod sursa(job #2882525)

Utilizator AndreidreiGresoiu Liviu-Andrei Andreidrei Data 31 martie 2022 15:22:04
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <bits/stdc++.h>
#define din cin
#define dout out
#define pi 3.14159265359
#define sw(x,y) x^=y,y^=x,x^=y
#define bmin(a,b)((a<b)?(a):(b))
#define bmax(a,b)((a>b)?(a):(b))
#define bminify(a,b)a=bmin(a,b)
#define bmaxify(a,b)a=bmax(a,b)
#define forq(i,ii,n)for(i=ii;i<n;i++)
using namespace std;
typedef long long ll;
ifstream in("podm.in");
ofstream out("podm.out");
ll n,x[501],y[501],m[501][501],i,j,d[501],k,l;
int main()
{
in>>n>>x[0];d[0]=x[0];
while(i<n)in>>y[i],x[i+1]=y[i],d[i+1]=y[i],i++;
for(i=1;i<n;i++)m[i][i+1]=d[i-1]*d[i]*d[i+1];
for(j=2;j<n;j++)
    for(i=1;i<=n-j;i++)
{
    k=i+j,m[i][k]=LLONG_MAX;
    for(l=i;l<k;l++)m[i][k]=bmin(m[i][k],m[i][l]+m[l+1][k]+d[i-1]*d[k]*d[l]);
}
out<<m[1][n];
}