Pagini recente » Cod sursa (job #1397832) | Cod sursa (job #330998) | Cod sursa (job #945421) | Cod sursa (job #3200250) | Cod sursa (job #2662609)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("podm.in");
ofstream g("podm.out");
int n, d[505], dp[505][505];
void calcDP(int i, int j)
{
for(int k = i; k<=j-1; ++k)
{
dp[i][j] = min(dp[i][j], dp[i][k] + dp[k+1][j] + d[i] * d[k+1] * d[j+1]);
}
}
void parcMat()
{
for(int i = 1; i<n; i++)
{
for(int j = 0; j<n-i; j++)
{
dp[j][i+j] = 1000000000;
calcDP(j, i+j);
}
}
}
void read()
{
f>>n;
for(int i = 0; i<n+1; i++)
{
f>>d[i];
}
}
void afisare()
{
for(int i = 0; i<n; i++)
{
for(int j = 0; j<n; j++)
{
g<<dp[i][j]<<" ";
}
g<<"\n";
}
}
int main()
{
read();
parcMat();
g<<dp[0][n-1]<<"\n";
//afisare();
return 0;
}