Pagini recente » Cod sursa (job #2715904) | Cod sursa (job #2156765) | Cod sursa (job #112988) | Cod sursa (job #2153838) | Cod sursa (job #1049527)
#include <fstream>
#define MAX 510
#define INF 0xfffffffffffff
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
int N;
long long m[MAX][MAX], d[MAX];
long long mini(long long a, long long b)
{
if( a < b) return a;
else return b;
}
int main()
{
int i, j, k;
fin>> N;
for( i = 0; i <= N; i++)
fin>>d[i];
for(i = 1; i <= N; i++)
for(j = i + 2; j <= N; j++)
m[i][j] = INF;
for(i = 1; i <= N; i++)
m[i][i] = 0;
for(i = 1; i < N; i++)
m[i][i+1] = d[i - 1] * d[i] * d[ i + 1];
for(int l = 2; l < N; l++)
for( i = 1; i + l <= N; i++)
{
j = i + l;
for( k = i; k < j; k++)
m[i][j] = mini(m[i][j], m[i][k] + m[k+1][j] + d[i - 1] * d[k] * d[j]);
}
fout<<m[1][N];
return 0;
}