Pagini recente » simularecercazi | Cod sursa (job #545796) | Cod sursa (job #538959) | tema | Cod sursa (job #1704001)
#include <stdio.h>
#include <stdlib.h>
#define MININF 1000000000
int c[100][100],d[101],n;
FILE *f,*g;
void citire()
{
f=fopen("podm.in","r");
int i;
fscanf(f,"%d",&n);
for(i=0; i<=n; i++)fscanf(f,"%d",&d[i]);
fclose(f);
}
void dinamica()
{
int i,j,k,min,kmin,p;
for(i=1; i<=n; i++)c[i][i]=0;
for(p=1; p<=n-1; p++)
for(i=1; i<=n-p; i++)
{
j=i+p;
min=MININF;
kmin=-1;
for(k=i; k<=j-1; k++)
if(min>c[i][k]+c[k+1][j]+d[i-1]*d[k]*d[j])
{
min=c[i][k]+c[k+1][j]+d[i-1]*d[k]*d[j];
kmin=k;
}
c[i][j]=min;
c[j][i]=kmin;
}
g=fopen("podm.out","w");
fprintf(g,"%d",c[1][n]);
fclose(g);
}
int main()
{
citire();
dinamica();
return 0;
}