Pagini recente » Cod sursa (job #48442) | Cod sursa (job #873001) | Cod sursa (job #54821) | Cod sursa (job #1413601) | Cod sursa (job #1504492)
#include<stdio.h>
FILE *fin,*fout;
long long mat[501][501],n,arr[502],v;
long long int mi(long long int a,long long int b)
{
if(a<b)
{
return a;
}
return b;
}
int main()
{
fin=fopen("podm.in","r");
fout=fopen("podm.out","w");
fscanf(fin,"%lld",&n);
for(int i=0;i<=n;i++)
{
fscanf(fin,"%lld",&arr[i+1]);
}
for(int i=1;i<=n;i++)
{
mat[i][i]=0;
}
for(int j=1;j<n;j++)
{
mat[j][j+1]=arr[j]*arr[j+1]*arr[j+2];
}
for(int i=2;i<n;i++)
{
for(int j=1;j+i<=n;j++)
{
v=i+j;
mat[j][j+i]=20000000000000000000;
for(int k=j;k<v;k++)
{
mat[j][v]=mi(mat[j][v],mat[j][k]+mat[k+1][v]+arr[j]*arr[k+1]*arr[v+1]);
}
}
}
fprintf(fout,"%lld",mat[1][n]);
}