Pagini recente » Cod sursa (job #3264667) | Cod sursa (job #2936248) | Cod sursa (job #95502) | Cod sursa (job #2341560) | Cod sursa (job #2157142)
#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]=min(dp[l+1][c]+v[l].lin*v[l].col*v[c].col, dp[l][c-1]+v[c].col*v[c].lin*v[l].lin);
}
}
out<<dp[0][n-1];
return 0;
}