Cod sursa(job #500268)

Utilizator EstarDaian Dragos Estar Data 11 noiembrie 2010 20:16:20
Problema Parantezare optima de matrici Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <fstream>

using namespace std;

ifstream fi("podm.in");
ofstream fo("podm.out");

int d[501] , n , i , l  , j , mat[501][501] , Min;

void cautare(int i , int j){
    int iii=i+1 , jjj=i ;
  Min=mat[i][jjj] + mat[iii][j]+d[i]*d[i+1]*d[j+1];
  for(int ii=1;ii<=j-i-1;ii++)
  if(Min>mat[i][jjj+ii] + mat[iii+ii][j]+d[i]*d[j]*d[j+1]){
  Min=mat[i][jjj+ii] + mat[iii+ii][j]+d[i]*d[j]*d[j+1];
  }
  mat[i][j]=Min;
}

int main(){
  fi>>n;
  for(i=1;i<=n+1;i++){
    fi>>d[i];
  }
  for(l=2;l<=n;l++){
  i=1;
  for(j=l;j<=n;i++,j++)
  cautare(i,j);
  }
  fo<<mat[1][n];
}