Pagini recente » Cod sursa (job #2187402) | Cod sursa (job #1313472) | Cod sursa (job #216459) | Cod sursa (job #466340) | Cod sursa (job #866399)
Cod sursa(job #866399)
#include <stdio.h>
int v[501];
int v_length;
int table[501][501];
void solve(int i, int j)
{
int k;
int min = -1000;
if ( i == j) {
table[i][j] = 0;
return;
}
for(k = i; k < j; k++) {
int mul_num = table[i][k] + v[i-1]*v[k]*v[j] + table[k+1][j];
if ( min == -1000 || mul_num < min)
min = mul_num;
}
table[i][j] = min;
}
int main()
{
FILE *fin = fopen("podm.in", "r");
FILE *fout = fopen("podm.out", "w");
int i;
fscanf(fin, "%d", &v_length);
for (i = 0; i <= v_length ; i++) {
fscanf(fin, "%d", &v[i]);
}
int distance;
for(distance = 1; distance < v_length; distance++)
for(i = 1; i+distance <= v_length; i++)
solve(i, i+distance);
fprintf(fout, "%d\n", table[1][v_length]);
/*
int j;
for( i = 0 ; i <= v_length; i++,printf("\n"))
for( j = 0; j <= v_length; j++)
printf("%d\t", table[i][j]);
*/
fclose(fin);
fclose(fout);
return 0;
}