Pagini recente » Cod sursa (job #2779420) | Cod sursa (job #3288309) | Cod sursa (job #220325) | Cod sursa (job #259821) | Cod sursa (job #2763718)
#include <iostream>
#include <fstream>
#include <climits>
using namespace std;
#define INF 100000000000000000LL
#define Min(a, b) ((a) < (b) ? (a) : (b))
long a[505], b[505][505];
int main()
{
ifstream in("podm.in");
ofstream out("podm.out");
int n;
in>>n;
for(int i=0; i<=n; i++) in>>a[i];
for(int i=1; i<=n; i++) b[i][i]=0;
for(int i=1; i<=n-1; i++) b[i][i+1]=a[i-1]*a[i]*a[i+1];
for(int w=2; w<=n-1; w++)
for(int i=1; i<=n-w; i++){
int j=w+i;
b[i][j]=LONG_MAX;
for(int k=i; k<=j-1; k++)
b[i][j] = Min(b[i][j], b[i][k] + b[k + 1][j] + a[i - 1] * a[k] * a[j]);
}
out<<b[1][n];
return 0;
}