Pagini recente » Cod sursa (job #1526062) | Cod sursa (job #2123959) | Cod sursa (job #2896797) | Cod sursa (job #2393795) | Cod sursa (job #2157199)
#include <fstream>
using namespace std;
ifstream in("podm.in");
ofstream out("podm.out");
#pragma pack(1)
#define MAXIM 510
typedef unsigned long long ll;
ll dp[MAXIM][MAXIM];
struct matrice
{
ll lin, col;
}v[MAXIM];
int main()
{
ll n, i, j;
in>>n>>v[0].lin;
for(i=1;i<=n;i++)
{
in>>v[i].lin;
v[i-1].col=v[i].lin;
}
//for(i=0;i<n;i++) dp[i][i]=1;
for(i=0;i<n-1;i++)
{
dp[i][1+i]=v[i].lin*v[i].col*v[i+1].col;
}
for(j=2;j<n;j++)
{
for(i=0;i<n-j;i++)
{
int l, c;
l=i;c=j+i;
dp[l][c]=~0;
for(int k=l;k<c;k++) if(dp[l][k]+dp[k+1][c]<dp[l][c]) dp[l][c]=dp[l][k]+dp[k+1][c];
}
}
out<<dp[0][n-1];
return 0;
}