Pagini recente » Cod sursa (job #2375696) | Cod sursa (job #67560) | Cod sursa (job #152737) | Cod sursa (job #802347) | Cod sursa (job #866402)
Cod sursa(job #866402)
#include <stdio.h>
int v[501];
int v_length;
unsigned long long table[501][501];
void solve(int i, int j)
{
int k;
unsigned long long min = 0;
if ( i == j) {
table[i][j] = 0;
return;
}
for(k = i; k < j; k++) {
unsigned long long mul_num = table[i][k] + v[i-1]*v[k]*v[j] + table[k+1][j];
if ( min == 0 || 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, "%llu\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;
}