Cod sursa(job #1424015)

Utilizator Cezar_MihalceaCezar Mihalcea Cezar_Mihalcea Data 23 aprilie 2015 10:47:06
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<fstream>
using namespace std;
ifstream f("podm.in");
ofstream g("podm.out");
long long a[502],d[502][502];

int min(int x,int y)
{
  if(x<y)
    return x;
  else
    return y;
}

void calc(int i,int j)
{
  int k;
  long long mink=99999999999999999LL;
  for(k=i;k<j;k++)
    mink=min(d[i][k]+d[k+1][j]+a[i]*a[k+1]*a[j+1],mink);
  d[i][j] = mink;
}
int main()
{
  int n,i,j;
  f>>n;
  for(i=1;i<=n+1;i++)
    f>>a[i];
  for(i=1;i<=n;i++)
    d[i][i]=0;
  for(i=n-1;i>=1;i--)
    for(j=i+1;j<=n;j++)
      calc(i,j);
  g<<d[1][n];
  return 0;
}