Pagini recente » Cod sursa (job #1802542) | Cod sursa (job #470359) | Cod sursa (job #2760515) | Cod sursa (job #2541590) | Cod sursa (job #1220863)
#include <iostream>
#include <fstream>
#include <stdio.h>
using namespace std;
typedef long long ll;
int n;
ll a[501],m[502][502];
const ll MAX = (1LL << 60);
int main(){
freopen("podm.in","r",stdin);
freopen("podm.out","w",stdout);
int i = 0;
scanf("%d",&n);
for(i = 0; i <= n; i++){
scanf("%lld",&a[i]);
}
for(i = 1; i < n; i++)
m[i][i + 1] = a[i - 1] * a[i] * a[i + 1];
for(int d = 2; d < n; d++)
for(i = 1; i <= n - d; i++){
m[i][i + d] = MAX;
for(int k = 0; k < d; k++)
m[i][i + d] = m[i][i + d] < m[i][i + k] + m[i + k + 1][i + d] + a[i - 1] * a[i + k] * a[i + d] ? m[i][i + d] : m[i][i + k] + m[i + k + 1][i + d] + a[i - 1] * a[i + k] * a[i + d];
}
printf("%lld\n",m[1][n]);
return 0;
}