Pagini recente » Cod sursa (job #456951) | Cod sursa (job #1284634) | Cod sursa (job #942417) | Cod sursa (job #519850) | Cod sursa (job #1071277)
#include<iostream>
#include<fstream>
using namespace std;
ifstream in("podm.in");
ofstream out("podm.out");
int n;
long long d[10000],c[505][505];
void read()
{
in>>n;
for (int i=0;i<=n;i++)
in>>d[i];
}
void solve()
{
long long minim;
int j;
for (int i=1;i<=n-1;i++)
c[i][i+1]=d[i-1]*d[i]*d[i+1];
for (int count=3;count<=n;count++)
for (int i=1;i<=n-count+1;i++)
{
minim=100000000000000000LL;
j=i+count-1;
for (int k=i;k<j;k++)
if (c[i][k]+c[k+1][j]+d[i-1]*d[k]*d[j]<minim)
minim=c[i][k]+c[k+1][j]+d[i-1]*d[k]*d[j];
c[i][j]=minim;
}
out<<c[1][n]<<"\n";
}
int main()
{
read();
solve();
return 0;
}