Pagini recente » Cod sursa (job #471641) | Cod sursa (job #258554) | Cod sursa (job #782692) | Cod sursa (job #2237139) | Cod sursa (job #2052175)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
int c[100][100],n,i,j,k,l,d[100],mmin,val,s[100][100];
void optim(int n,int d[100],int c[100][100],int s[100][100])
{
int cost;
for(i=1;i<=n;i++)
c[i][i]=0;
for(l=2;l<=n;l++)
for(i=1;i<=n-l+1;i++)
{
j=i+l-1;
c[i][j]=1000000000;
for(k=1;k<=j-1;k++)
cost=c[i][k]+c[k+1][j]+d[i-1]*d[k]*d[j];
if(cost<c[i][j])
{
c[i][j]=cost;
s[i][j]=k;
}
}
}
int main()
{
fin>>n;
for(i=0;i<=n;i++)
fin>>d[i];
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
if(i==j)
c[i][j]=0;
if(i==j-1)
c[i][j]=d[i-1]*d[i]*d[i+1];
mmin=c[i][i]+c[i+1][j]+d[i-1]*d[i]*d[j];
for(k=i+1;k<=j-1;k++)
{
val=c[i][k]+c[k+1][j]+d[i-1]*d[k]*d[j];
if(val<mmin)
mmin=val;
}
}
s[i][j]=k;
fout<<mmin;
}