Pagini recente » Cod sursa (job #611310) | Cod sursa (job #2205665) | Cod sursa (job #2614356) | Cod sursa (job #389681) | Cod sursa (job #650389)
Cod sursa(job #650389)
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
int min(int a,int b)
{
if(a<b) return a;
return b;
}
int main()
{
FILE *f,*g;
f=fopen("podm.in","r");
g=fopen("podm.out","w");
int dim[501],n,i,j,d,k,M[501][501],infinit=1000000;
fscanf(f,"%d",&n);
for(i=0;i<=n;i++)
fscanf(f,"%d",&dim[i]);
for(i=1;i<=n;i++)
{
M[i][i]=0;
M[i][i+1]=dim[i-1]*dim[i]*dim[i+1];
}
for(i=1;i<n-1;i++)
for(j=i+2;j<=n;j++)
M[i][j]=infinit;
for(d=1;d<=n;d++)
for(i=1;i<=n-d;i++)
for(k=i;k<=i+d;k++)
M[i][i+d]=min(M[i][i+d],M[i][k]+M[k+1][i+d]+dim[i-1]*dim[k]*dim[i+d]);
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
fprintf(g,"%d ",M[i][j]);
fprintf(g,"\n");
}
printf("%d",M[1][n]);
fclose(f);
fclose(g);
getch();
return 0;
}