Cod sursa(job #394107)
| Utilizator | Data | 10 februarie 2010 16:12:02 | |
|---|---|---|---|
| Problema | Floyd-Warshall/Roy-Floyd | Scor | 50 |
| Compilator | fpc | Status | done |
| Runda | Arhiva educationala | Marime | 0.57 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) 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.
