Cod sursa(job #670452)

Utilizator Buzu_Tudor_RoCont vechi Buzu_Tudor_Ro Data 29 ianuarie 2012 11:34:24
Problema Parantezare optima de matrici Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.79 kb
Program paranteza_optima_matrici;
const inf=1000000000;
var fi,fo : text;
   bst:array[0..500,0..500] of longint;
   d : array[0..500] of longint;
   i,j,n,k,w : longint;

Function min(a,b:longint):longint;
begin
    if a<b then min:=a
           else min:=b;
end;

begin
    assign(fi,'podm.in'); reset(fi); readln(fi,n);
    assign(fo,'podm.out'); rewrite(fo);

    for i:=0 to n do read(fi,d[i]);
    for i:=1 to n-1 do bst[i,i+1]:=d[i-1]*d[i]*d[i+1];
    for i:=2 to n-1 do
       for j:=1 to n-i do begin
                          w:=i+j;
                          bst[j,w]:=inf;
                          for k:=j to w-1 do bst[j,w]:=min(bst[j,w],bst[j,k]+bst[k+1,w]+d[j-1]*d[k]*d[i]);
                          end;

    write(fo,bst[1,n]);
    close(fi); close(fo);
end.