Pagini recente » Cod sursa (job #2904448) | Profil corina.ioana | Cod sursa (job #1862279) | Cod sursa (job #1469729) | Cod sursa (job #1149545)
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <cmath>
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 = INFINITY;
int i = j - d+1;
for(int k = i; k < j; k++)
if(1ll*a[i][k] + a[k+1][j] + 1ll*L[i-1]*L[k]*L[j] < minim)
minim = 1ll*a[i][k] + a[k+1][j] + 1ll*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("%lld\n", a[1][n]);
return 0;
}