Cod sursa(job #394122)

Utilizator skullLepadat Mihai-Alexandru skull Data 10 februarie 2010 16:23:45
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.64 kb
var a:array [1..100,1..100] of integer;
    n,i,j,k:integer;
    f,g:text;
begin
assign(f,'royfloyd.in');reset(f);
readln(f,n);
for i:=1 to n do
    begin
    for j:=1 to n do
        read(f,a[i,j]);
    readln(f);
    end;
close(f);
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]) and (a[i,k]+a[k,j]>0) and (i<>j)
               and (a[i,k]<>0) and (a[k,j]<>0)) or (a[i,j]=0) then
               a[i,j]:=a[i,k]+a[k,j];
assign(g,'royfloyd.out');rewrite(g);
for i:=1 to n do
    begin
    for j:=1 to n do
        write(g,a[i,j],' ');
    writeln(g);
    end;
close(g);
end.