Pagini recente » Cod sursa (job #419450) | Borderou de evaluare (job #620716) | Borderou de evaluare (job #2611208) | Borderou de evaluare (job #361731) | Cod sursa (job #3274362)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
const long long INF=LLONG_MAX;
vector <vector <long long>> dp(501, vector<long long>(501, INF));
long long dim[502];
int x, i, j, k, l, n;
int main(){
fin>>n;
for(int i=0;i<=n;i++){
fin>>dim[i];
dp[i][i]=0;
}
for(l=1;l<=n-1;l++){
for(i=1;i<=n-l;i++){
j=i+l;
for(int k=i;k<j;k++){
long long d=dp[i][k]+dp[k+1][j]+dim[i-1]*dim[k]*dim[j];
if(d<dp[i][j]) dp[i][j]=d;
}
}
}
fout<<dp[1][n];
return 0;
}