Pagini recente » Cod sursa (job #1343544) | Cod sursa (job #2160167) | Cod sursa (job #2819833) | Cod sursa (job #2142531) | Cod sursa (job #1723164)
#include <cstdio>
#include <climits>
using namespace std;
#define N 503
short d[N],n;
int M[N][N];
void progDin()
{
int nr,i,j,k,mint,kmin;
for(nr=2;nr<=n;++nr)//cate matrice se inmultesc
{
for(i=1;i<=n-nr+1;++i)//indicele Ai
{
j=i+nr-1;//se inmultesc nr matrice, de la Ai la Aj
for(k=i,mint=INT_MAX;k<j;++k)
if(mint>M[i][k]+M[k+1][j]+d[i-1]*d[k]*d[j])//determin minuimul si pozitia sa
{
mint=M[i][k]+M[k+1][j]+d[i-1]*d[k]*d[j];
kmin=k;
}
M[i][j]=mint;M[j][i]=kmin;
}
}
FILE *g=freopen("podm.out","w",stdout);
printf("%d",M[1][n]);
}
void getPath()
{
//alta data
}
int main()
{
short i;
FILE *f=freopen("podm.in","r",stdin);
scanf("%hd",&n);
for(i=0;i<=n;++i)
scanf("%hd",d+i);
progDin();
//getPath();
}