Pagini recente » Cod sursa (job #1034641) | Cod sursa (job #1283374) | Rating Ionut Velea (ionutvelea) | Cod sursa (job #1728376) | Cod sursa (job #1149543)
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
#define INF 99999999999
using namespace std;
int L[510];
long long a[510][510];
int n;
void citire()
{
scanf("%d", &n);
for(int i = 0; i <= n; i++)
scanf("%d", &L[i]);
}
void debug()
{
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= n; j++)
cerr<<a[i][j]<<"\t";
cerr<<endl;
}
cerr<<endl;
}
void solve()
{
long long minim;
for(int d = 2; d <=n; d++)
for(int j = d; j <= n; j++)
{
minim = INF;
int i = j - d+1;
for(int k = i; k < j; k++)
if(a[i][k] + a[k+1][j] + L[i-1]*L[k]*L[j] < minim)
minim = a[i][k] + a[k+1][j] + L[i-1]*L[k]*L[j];
a[i][j] = minim;
}
}
int main()
{
freopen("podm.in", "r", stdin);
freopen("podm.out", "w", stdout);
citire();
solve();
// debug();
printf("%d\n", a[1][n]);
return 0;
}