Cod sursa(job #433008)

Utilizator mihaionlyMihai Jiplea mihaionly Data 3 aprilie 2010 08:39:32
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <cstdio>
using namespace std;
#define nmax 503
#define ll long long
FILE *f=fopen("podm.in","r");
FILE *g=fopen("podm.out","w");
long long d[nmax],M[nmax][nmax];
int n;
inline ll min(ll a,ll b)
 {
 if(a==-1||b<a)
  return b;
 return a;
 }
int main()
 {
 int i,j,k;
 fscanf(f,"%d",&n);
 for(i=1;i<=n+1;i++)
  fscanf(f,"%lld",&d[i]);
 for(j=2;j<=n;j++)
  for(i=j-1;i>=1;i--)
   {
   M[i][j]=-1;
   for(k=i;k<j;k++)
	M[i][j]=min(M[i][j],M[i][k]+M[k+1][j]+d[i]*d[k+1]*d[j+1]);
   }
 fprintf(g,"%lld",M[1][n]);
 return 0;
 }