VDANGER - Nguy hiểm rõ ràng trước mắt

Tác giả: flashmt

Ngôn ngữ: Pascal

const maxn=100;
      max=100000000;
var a:array[1..maxn,1..maxn] of longint;
    b:array[1..10000] of byte;
    n:byte;
    m:integer;

procedure rf;
var i,j:byte; k:integer;
begin
     readln(n,m);
     for k:=1 to m do readln(b[k]);
     for i:=1 to n do
     begin
          for j:=1 to n do
              read(a[i,j]);
          readln;
     end;
end;

procedure pr;
var i,j,k:byte;
begin
     for i:=1 to n do
         for j:=1 to n do
             for k:=1 to n do
                 if a[j,k]>a[j,i]+a[i,k] then
                    a[j,k]:=a[j,i]+a[i,k];
end;

procedure wf;
var i:integer; re:longint;
begin
     re:=0;
     for i:=1 to m-1 do
         re:=re+a[b[i],b[i+1]];
     write(re);
end;

begin
     rf;
     pr;
     wf;
end.

Download