Cod sursa(job #157661)

Utilizator DonPushmeMilitaru Adrian DonPushme Data 13 martie 2008 10:32:27
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 1.05 kb
type vec=array[1..100,1..100] of longint;
const inf=maxint;
var a:vec;
    n:integer;

procedure citire;
var i,j:integer;
begin
assign(input,'royfloyd.in');reset(input);
readln(n);
for i:=1 to n do
        begin
        for j:=1 to n do
                begin
                read(a[i,j]);
                end;
        writeln;
        end;
for i:=1 to n do
        for j:=1 to n do
                if (i<>j) and (a[i,j]=0) then a[i,j]:=inf;
close(input);
end;

procedure afisare;
var i,j:integer;
begin
assign(output,'royfloyd.out');rewrite(output);
for i:=1 to n do
        for j:=1 to n do
                if (a[i,j]=inf) then a[i,j]:=0;
for i:=1 to n do
        begin
        for j:=1 to n do
                write(a[i,j],' ');
        writeln;
        end;

close(output);
end;

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

begin {main}
citire;
roy;
afisare;
end.