Pagini recente » Cod sursa (job #1235260) | Cod sursa (job #1316982) | Cod sursa (job #2565531) | Cod sursa (job #2911937) | Cod sursa (job #613405)
Cod sursa(job #613405)
#include <iostream>
#include <stdio.h>
#define INF 0x3f3f3f
using namespace std;
int n,d[10001],m[501][501];
void citire()
{
freopen("podm.in","r",stdin);
scanf ("%d",&n);
for (int i=0;i<=n;i++)
scanf ("%d",&d[i]);
for (int i=0;i<=n;i++)
for (int j=0;j<=n;j++)
{
m[i][j]=INF;
if (i==j)
m[i][j]=0;
}
}
void afis(int i,int j)
{
if (i==j)
{
cout<<(char)(i+64);
}
else
{
cout<<"(";
afis(m[i][j],j);
afis(i,m[i][j]+1);
cout<<")";
}
}
void rez()
{
freopen ("podm.out","w",stdout);
for (int y=2;y<=n;y++)
for (int i=1,j=y;i<n;j++,i++)
{
int minn=INF,poz;
for (int k=i;k<j;k++)
{
int s=m[i][k]+m[k+1][j]+d[i-1]*d[k]*d[j];
if (minn>s)
minn=s,poz=k;
}
m[i][j]=minn;
m[j][i]=poz;
}
cout<<m[1][n]<<"\n";
//afis(n,1);
}
int main()
{
citire();
rez();
return 0;
}