Pagini recente » Cod sursa (job #58928) | Cod sursa (job #3166207) | Cod sursa (job #1272448) | Cod sursa (job #3175950) | Cod sursa (job #647812)
Cod sursa(job #647812)
#include<stdio.h>
#define INF 100000000000000000LL
long long m[500][500],v[500];
int n;
int min(long long a,long long b)
{
if(a<b)
return a;
else
return b;
}
int main()
{
int i,a,b,j;
FILE *in,*out;
in=fopen("podm.in","r");
if(!in)
{
printf("EROARE");
return 0;
}
out=fopen("podm.out","w");
if(!out)
{
printf("EROARE");
return 0;
}
fscanf(in,"%d",&n);
for(i=0;i<=n;i++)
fscanf(in,"%llu",&v[i]);
for(i=1;i<=n;i++)
m[i][i]=0;
for(i=1;i<=n;i++)
{ m[i][i+1]=v[i-1]*v[i]*v[i+1];
printf("%llu\n",m[i][i+1]);}
for(a=2;a<=n-1;a++)
for(i=1;i<=n;i++)
{
j=i+a;
m[i][j]=INF;
for(b=i;b<=j-1;b++)
if(m[i][j]>m[i][b]+m[b+1][j]+v[i-1]*v[b]*v[j])
m[i][j]=m[i][b]+m[b+1][j]+v[i-1]*v[b]*v[j];
}
fprintf(out,"%llu",m[1][n]);
fclose(out);
fclose(in);
system("pause");
return 0;
}