Pagini recente » Cod sursa (job #2841029) | Cod sursa (job #306345) | Profil EugenStoica | Cod sursa (job #551009) | Cod sursa (job #1617886)
#include <stdio.h>
#include <stdlib.h>
int main(){
unsigned n,*dim;
unsigned long **m;
FILE*f=fopen("podm.in","r");
fscanf(f,"%u",&n);
dim=(unsigned*)malloc(sizeof(unsigned)*(n+1));
for(unsigned i=0;i<=n;i++)
fscanf(f,"%u",&dim[i]);
fclose(f);
m=(unsigned long**)malloc(sizeof(unsigned long)*n);
for(unsigned i=0;i<n;i++){
m[i]=(unsigned long*)malloc(sizeof(unsigned long)*n);
for(unsigned j=0;j<n;j++)
m[i][j]=0;
}
for(unsigned i=0;i<n-1;i++)
m[i][i+1]=dim[i]*dim[i+1]*dim[i+2];
for(unsigned d=0;d<n-1;d++)
for(unsigned i=0;i+d<n;i++){
m[i][i+d]=50000000;
for(unsigned k=i;k<i+d-1;k++){
unsigned long min=m[i][k]+m[k+1][i+d]+dim[i]*dim[k]*dim[i+d];
if(m[i][i+d]<min)
m[i][i+d]=min;
}
}
for(unsigned i=0;i<n;i++){
for(unsigned j=0;j<n;j++)
printf("%lu ",m[i][j]);
printf("\n");
}
FILE*g=fopen("podm.out","w");
fprintf(g,"%lu",m[0][n-1]);
fclose(g);
system("PAUSE");
return 0;
}