Pagini recente » Cod sursa (job #2675353) | Cod sursa (job #1016070) | Cod sursa (job #1964265) | Cod sursa (job #1930002) | Cod sursa (job #1486045)
#include <stdio.h>
int main() {
FILE* fin = fopen("podm.in", "r");
int n;
long long d[501];
int i;
fscanf(fin, "%d\n", &n);
for(i=0; i<=n; i++) {
fscanf(fin, "%L ", &d[i]);
}
fclose(fin);
long long m[501][501];
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];
}
int dd, k;
long long min, val;
for(dd=2; dd<n; dd++) {
for(i=1; i<=n-dd; i++) {
min = 1000000000;
for(k=i; k<i+dd; k++) {
val = m[i][k] + m[k + 1][i + dd] + d[i - 1] * d[k] * d[i + dd];
if(min > val) {
min = val;
}
}
m[i][i + dd] = min;
}
}
FILE* fout = fopen("podm.out", "w");
fprintf(fout, "%L\n", m[1][n]);
fclose(fout);
return 0;
}