Pagini recente » Cod sursa (job #2729979) | Cod sursa (job #1723135) | Cod sursa (job #1190495) | Cod sursa (job #1652843) | Cod sursa (job #1650885)
#include <iostream>
#include <fstream>
#define inf (1<<30)
using namespace std;
ifstream f("podm.in");
ofstream g("podm.out");
int n,v[1005],dp[505][505],a1[505],a2[505];
int main()
{ int i,j,t,len,i1,i2;
f>>n;
for(i=1;i<=n+1;i++)
f>>v[i];
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++)
if (i!=j)
dp[i][j]=inf;
for(i=1;i<=n;i++)
{ a1[i]=v[i];
a2[i]=v[i+1];
}
for(i=1;i<=n;i++)
dp[i][i+1]=a1[i]*a2[i]*a2[i+1];
for(len=3;len<=n;len++)
{
for(i=1;i<=n-len+1;i++)
{ i1=i; i2=i+len-1;
for(t=i1;t<i2;t++)
dp[i1][i2]=min(dp[i1][i2],dp[i1][t]+dp[t+1][i2]+a1[i1]*a2[t]*a2[i2]);
}
}
g<<dp[1][n];
return 0;
}