Pagini recente » Cod sursa (job #1318311) | Cod sursa (job #232143) | Cod sursa (job #2270205) | Cod sursa (job #2920031) | Cod sursa (job #2400404)
#include <fstream>
using namespace std;
int main(){
int n;
long long d[501], dp[500][500];
ifstream fin ("podm.in");
fin >> n;
for (int i=0; i<=n; i++)
fin >> d[i];
fin.close();
for (int i=0; i<n; i++)
dp[i][i]=0;
for (int i=0; i<n-1; i++)
dp[i][i+1]=d[i]*d[i+1]*d[i+2];
for (int k=2; k<n; k++)
for (int i=0; i+k<n; i++){
dp[i][i+k]=dp[i][i]+dp[i+1][i+k]+d[i]*d[i+1]*d[i+k+1];
for (int j=i+1; j<i+k; j++)
dp[i][i+k]=min(dp[i][i+k], dp[i][j]+dp[j+1][i+k]+d[i]*d[j+1]*d[i+k+1]);
}
ofstream fout ("podm.out");
fout << dp[0][n-1];
fout.close();
return 0;
}