Pagini recente » Cod sursa (job #2299420) | Cod sursa (job #2374957) | Cod sursa (job #407311) | Cod sursa (job #2253220) | Cod sursa (job #1311338)
#include <stdio.h>
#define NMAX 523
#define VMAX 2000000000
FILE *fin, *fout;
long long int n, d[NMAX], min;
int main()
{
fin = fopen("podm.in", "r");
fout = fopen("podm.out", "w");
fscanf(fin, "%lld", &n);
for(int i = 1; i<= n+1; i++) fscanf(fin, "%lld", &d[i]);
long long int arr[NMAX][NMAX];
for(int i = 1; i <= n; i++) arr[i][i] = 0;
for(int i = 2; i <= n; i++)
{
int c = 1;
for(int j = i; j <= n; j++)
{
min = VMAX;
for(int k = c; k< j; k++)
{
if(arr[c][k] + arr[k+1][j] + d[c]*d[k+1]*d[j+1] < min) min = arr[c][k] + arr[k+1][j] + d[c]*d[k+1]*d[j+1];
}
arr[c][j] = min;
c++;
}
}
fprintf(fout, "%lld\n", arr[1][n]);
fclose(fin);
fclose(fout);
return 0;
}