Pagini recente » Cod sursa (job #1212731) | Cod sursa (job #1947152) | Cod sursa (job #1278102) | Cod sursa (job #762867) | Cod sursa (job #2036893)
#include <fstream>
#define INF 1000000000000000LL
#define DIM 505
using namespace std;
int n,i,j,k,l,x[DIM];
long long d[DIM][DIM];
ifstream fin ("podm.in");
ofstream fout ("podm.out");
long long rec (int st,int dr){
if (d[st][dr] != INF)
return d[st][dr];
if (dr == st + 1){
d[st][dr] = 0;
return 0;
}
for (int i=st+1;i<dr;i++){
d[st][dr] = min (d[st][dr],rec(st,i)+rec(i,dr)+x[st]*(long long)x[i]*x[dr]);
}
return d[st][dr];
}
int main (){
fin>>n;
n++;
for (i=1;i<=n;i++)
fin>>x[i];
for (i=1;i<n;i++)
for (j=i+1;j<=n;j++)
d[i][j] = INF;
/*for (l=3;l<=n;l++)
for (i=1;i+l-1<=n;i++){
j = i+l-1;
d[i][j] = INF;
for (k=i+1;k<j;k++)
d[i][j] = min (d[i][j],d[i][k]+d[k][j] + x[i]*x[j]*x[k]);
}*/
fout<<rec(1,n);
return 0;
}