Cod sursa(job #1121371)

Utilizator alinutzVasiu Alin alinutz Data 25 februarie 2014 12:40:19
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator fpc Status done
Runda Arhiva educationala Marime 0.97 kb
program info;
var f,g:text;
    a:array[1..100,1..100]of longint;
    n,i,j,k:integer;


procedure citire;

begin
    assign(f,'royfloyd.in');  reset(f);
    assign(g,'royfloyd.out');   rewrite(g);
    readln(f,n);
    for i:=1 to n do
      begin
          for j:=1 to n do
            read(f,a[i,j]);
            if (a[i,j]=0)and(i<>j)then
               a[i,j]:=maxlongint;
          readln(f);
      end;
end;


begin
    citire;

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

         for i:=1 to n do
           begin
               for j:=1 to n do
                 if a[i,j]=maxlongint then
                    write(g,0,' ')
               else
                  write(g,a[i,j],' ');
                writeln(g);
           end;

         close(f);
         close(g);
end.