Pagini recente » Cod sursa (job #1618711) | Cod sursa (job #870881) | Cod sursa (job #2219480) | Cod sursa (job #3279029) | Cod sursa (job #472877)
Cod sursa(job #472877)
// Parantezare optima de matrici.cpp : Defines the entry point for the console application.
//
//#include "stdafx.h"
#include "stdio.h"
FILE *f=fopen("podm.in", "r");
FILE *g=fopen("podm.out", "w");
long long n, d[505];
long long v[505][505];
void read()
{
fscanf(f, "%lld", &n);
for (long long i=0; i<=n; i++)
fscanf(f, "%lld", &d[i]);
for (long long j=0; j<=504; ++j)
for (long long k=0; k<=504; ++k)
v[j][k]=100000000000000000LL;
}
long long minim(long long x, long long y)
{
if (x<y) return x;
return y;
}
void program()
{
for (long long i=1; i<=n; i++)
{
v[i][i+1]=d[i-1]*d[i]*d[i+1];
v[i][i]=0;
}
for (long long k=2; k<n; ++k)
for (long long i=1; i<=n-k; ++i)
for (long long j=i; j<i+k; ++j)
v[i][i+k]=minim(d[i-1]*d[j]*d[i+k]+v[i][j]+v[j+1][i+k], v[i][i+k]);
}
int main()
{
read();
program();
fprintf(g, "%lld", v[1][n]);
return 0;
}