Pagini recente » Cod sursa (job #2166990) | Cod sursa (job #1086788) | Cod sursa (job #1944229) | Cod sursa (job #2361014) | Cod sursa (job #651268)
Cod sursa(job #651268)
#include<stdio.h>
#define MAX 100000000000000000LL
long long min(int a,int b)
{
return a<b ? a : b;
}
int dim[506],N;
void read()
{
FILE *fin;
fin=fopen("podm.in","r");
int i;
fscanf(fin,"%d",&N);
for(i=0;i<=N;i++)
fscanf(fin,"%d",&dim[i]);
fclose(fin);
}
void print(int m)
{
FILE *fout;
fout=fopen("podm.out","w");
fprintf(fout,"%d",m);
fclose(fout);
}
int main()
{
int i,j,d,k;
long long M[505][505];
read();
for(i=1;i<=N;i++)
M[i][i]=0;
for(d=1;d<N;d++)
{
for(i=1;i<=N-d;i++)
{
M[i][i+d]=MAX;
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]);
}
}
print(M[1][N]);
return 0;
}