Pagini recente » Cod sursa (job #660214) | Cod sursa (job #612278) | Cod sursa (job #106140) | Cod sursa (job #1688358) | Cod sursa (job #3000417)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("podm.in");
ofstream g ("podm.out");
long long n;
long long dp[501][501];
long long v[501];
int main()
{
f >> n;
for(long long i = 1;i<=n;i++)
{
f >> v[i];
}
f >> v[n+1];
for(long long dif = 1;dif<=n;dif++)
{
for(long long start = 1;start<=n-dif+1;start++)
{
long long fin = start+dif;
for(long long intermediar = start;intermediar<=fin;intermediar++)
{
if(dp[start][fin]==0)
dp[start][fin] = dp[start][intermediar]+dp[intermediar+1][fin]+(v[start]*v[intermediar+1]*v[fin+1]);
else
dp[start][fin] =min(dp[start][fin],dp[start][intermediar]+dp[intermediar+1][fin]+(v[start]*v[intermediar+1]*v[fin+1]));
}
}
}
g << dp[1][n];
}