Pagini recente » Cod sursa (job #1832844) | Cod sursa (job #1982325) | Cod sursa (job #2182382) | Cod sursa (job #2704033) | Cod sursa (job #2077679)
#include <cstdio>
#include <iostream>
#define INF 2000000000000000000
using namespace std;
long long v[501];
long long d[501][501];
int main()
{
FILE *fin=fopen ("podm.in","r");
FILE *fout=fopen ("podm.out","w");
int n,i,l,k,j;
fscanf (fin,"%d",&n);
n++;
for (i=1;i<=n;i++)
fscanf (fin,"%lld",&v[i]);
/// d[i][j] = inmultiri pt a anula secventa i..j
for (i=1;i<=n;i++)
for (j=i+2;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;
/// avem secventa i..j
for (k=i+1;k<j;k++){
/// il anulez pe i cu k
d[i][j]=min (d[i][j],d[i][k]+d[k][j]+v[i]*v[k]*v[j]);
}
}
}
fprintf (fout,"%lld",d[1][n]);
return 0;
}