Pagini recente » Cod sursa (job #1131602) | Cod sursa (job #181315) | Cod sursa (job #1941573) | Monitorul de evaluare | Cod sursa (job #3179582)
#include <fstream>
#include <climits>
#define NMAX 505
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
int N,d[NMAX];
long long dp[NMAX][NMAX];
int main()
{
int i,j,lg,k;
fin>>N;
for(i=0; i<=N; i++)
fin>>d[i];
///dp[i][i]=0;
for(i=1; i<N; i++)
dp[i][i+1]=d[i-1]*d[i]*d[i+1];
for(lg=3; lg<=N; lg++)
for(i=1; i<=N-lg+1; i++)
{
j=i+lg-1;
dp[i][j]=LLONG_MAX;
for(k=i; k<j; k++)
dp[i][j]=min(dp[i][j],
dp[i][k]+dp[k+1][j]+d[i-1]*d[k]*d[j]);
}
fout<<dp[1][N];
return 0;
}