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

Tác giả: ladpro98

Ngôn ngữ: Pascal

program vdanger;
uses    math;
const   maxn=101;
        fi='';
var     a:array[1..maxn,1..maxn] of longint;
        path:array[1..maxn*maxn] of longint;
        n,m:longint;

procedure input;
var     inp:text;
        i,j:longint;
begin
        assign(inp,fi);
        reset(inp);
        readln(inp,n,m);
        for i:=1 to m do readln(inp,path[i]);
        for i:=1 to n do
        begin
                for j:=1 to n do read(inp,a[i,j]);
                readln(inp);
        end;
        close(inp);
end;

procedure Floyd;
var     i,j,k:longint;
begin
        for k:=1 to n do
        for i:=1 to n do
        for j:=1 to n do
        if i<>j then
        a[i,j]:=min(a[i,j],a[i,k]+a[k,j]);
end;

procedure output;
var     res,i:longint;
begin
        res:=0;
        for i:=1 to m-1 do
        inc(res,a[path[i],path[i+1]]);
        write(res);
end;

begin
        input;
        Floyd;
        output;
end.

Download