Pagini recente » Cei mai harnici utilizatori infoarena | Cod sursa (job #3244244) | Cod sursa (job #3202283) | Cod sursa (job #302001) | Cod sursa (job #3280967)
#include <bits/stdc++.h>
#define int long long
#define pll pair<long long,long long>
using namespace std;
ifstream f("podm.in");
ofstream g("podm.out");
int n,x,y,dp[520][520];
pll mat[520];
int32_t main()
{
f>>n>>x;
for(int i=1; i<=n; i++)
y=x, f>>x, mat[i]={y,x};
for(int i=1; i<=n; i++)
for(int j=i+1; j<=n; j++)
dp[i][j]=INT_MAX;
for(int t=2; t<=n; t++)
{
int i=1, j=t;
while(i<=n-t+1)
{
for(int k=i; k<=j; k++)
dp[i][j]=min(dp[i][j], dp[i][k]+dp[k+1][j]+mat[i].first*mat[k].second*mat[j].second);
i++, j++;
}
}
g<<dp[1][n];
return 0;
}