Pagini recente » Cod sursa (job #2456703) | Cod sursa (job #2246805) | Cod sursa (job #746262) | Cod sursa (job #2124455) | Cod sursa (job #2947461)
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ifstream in("podm.in");
ofstream out("podm.out");
const int NMAX=507;
pair<ll,ll>V[NMAX];
ll dp[NMAX][NMAX];
int main()
{
int N;
int i,j,k;
ll minim;
in>>N;
in>>V[1].first>>V[1].second;
for(i=2; i<=N; i++){
in>>V[i].second;
V[i].first=V[i-1].second;
}
for(i=1; i<N; i++)
dp[i][i+1]=V[i].first*V[i].second*V[i+1].second;
for(j=2; j<N; j++){
for(i=1; i<=N-j; i++){
minim=9223372036854775800;
for(k=i; k<i+j; k++)
minim=min(minim,dp[i][k]+dp[k+1][i+j]+V[i].first*V[k].second*V[i+j].second);
dp[i][i+j]=minim;
}
}
out<<dp[1][N];
return 0;
}