Pagini recente » Cod sursa (job #1552080) | Cod sursa (job #472064) | Cod sursa (job #1874264) | Cod sursa (job #1384034) | Cod sursa (job #2794370)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cmath>
using namespace std;
ifstream fin ("podm.in");
ofstream fout ("podm.out");
int n,i,j,v[502],k,l;
long long dp[502][502];
int main()
{
fin>>n;
for(i=1;i<=n+1;i++) fin>>v[i];
///dp[i][j] = numarul nimin de inmultiri realizat de matricile dintre i si j
for(l=1;l<=n;l++)
{
for(i=1;i<=n-l+1;i++)
{
j=i+l-1;
dp[i][j]=999999999;
if(i==j) dp[i][j]=0;
else
for(k=i;k<=j-1;k++)
{
dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]+1LL*v[i]*v[k+1]*v[j+1]);
}
}
}
fout<<dp[1][n];
return 0;
}