Cod sursa(job #754363)

Utilizator XladhenianGrigorita Vlad-Stefan Xladhenian Data 1 iunie 2012 18:52:25
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
                                                     
#include <fstream>
using namespace std;

long long K[505][505];

int main(void)
{
 long long N;
 long long M[505];
 long long a,b,c,d,e;
 fstream fin("podm.in",ios::in);
 fstream fout("podm.out",ios::out);
 fin >> N;
 for (a = 0;a <= N;a += 1)
  {
   fin >> M[a];
  }
 for (a = 0;a <= N;a += 1)
  {
   for (b = 0;b <= N;b += 1)
    {
     K[a][b] = 0X7FFFFFFFFFFFFFFF;
    }
  }
 for (a = 0;a <= N;a += 1)
  {
   K[a][a + 1] = 0;
  }
 for (a = 2;a <= N;a += 1)
  {
   for (b = 0;b <= N - a;b += 1)
    {
     c = b + a;
     for (d = b + 1;d < c;d += 1)
      {
       e = K[b][d] + K[d][c] + M[b] * M[d] * M[c];
       if (e < K[b][c])
         {
          K[b][c] = e;
         }
      }
    }
  }
 fout << K[0][N];
 fin.close();
 fout.close();
 return 0;
}