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.