Pagini recente » Cod sursa (job #2704787) | Cod sursa (job #2172806) | Cod sursa (job #1776192) | Cod sursa (job #1543503) | Cod sursa (job #1224064)
#include <iostream>
#include <fstream>
#define MAX_LENGTH 505
#define MAX_VALUE (1<<29)
using namespace std;
long long dp[MAX_LENGTH][MAX_LENGTH];
int v[MAX_LENGTH];
long long min(long long a, long long b)
{
if(a < b)
return a;
return b;
}
long long min_prod(int a[MAX_LENGTH], int n)
{
int i, j, k;
for(j = 2 ; j <= n ; j++)
for(i = j - 2 ; i >= 0 ; i--)
{
dp[i][j] = MAX_VALUE;
for(k = i + 1 ; k < j ; k++)
dp[i][j] = min(dp[i][j], a[i]*a[k]*a[j] + dp[i][k] + dp[k][j]);
}
return dp[0][n];
}
int main()
{
int n, i;
fstream f("podm.in", ios::in);
fstream g("podm.out", ios::out);
f >> n;
for(i = 0 ; i <= n ; i++)
f >> v[i];
g << min_prod(v, n);
return 0;
}