Pagini recente » Cod sursa (job #184251) | Cod sursa (job #2443901) | Cod sursa (job #2653468) | Cod sursa (job #1216294) | Cod sursa (job #2232338)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
int n,i,j,k,nr,l,M[505][505];
struct dim
{ int x, y; } d[505][505];
int main () {
fin>>n;
fin>>j;
for(i=1;i<=n;i++)
{
fin>>k;
d[i][i].x=j;
d[i][i].y=k;
j=k;
}
for(k=2;k<=n;k++)
for(i=1;i<=n-k+1;i++)
{
l=i+k-1;
M[i][l]=M[i][i]+M[i+1][l]+d[i][i].x*d[i][i].y*d[i+1][l].y;
d[i][l].x=d[i][i].x;
d[i][l].y=d[i+1][l].y;
for(j=i+1;j<l;j++)
{
nr=M[i][j]+M[j+1][l]+d[i][j].x*d[i][j].y*d[j+1][l].y;
if(nr<M[i][l])
{
M[i][l]=nr;
d[i][l].x=d[i][j].x;
d[i][l].y=d[j+1][l].y;
}
}
}
fout<<M[1][n]<<"\n";
}