Cod sursa(job #2900519)

Utilizator stalecuAlecu Stefan-Iulian stalecu Data 11 mai 2022 00:05:42
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 1.01 kb
program royfloyd;

{$MODE objfpc}{$H+}{$J-}
uses Sysutils, Math;

const
  C_IN_FNAME = 'royfloyd.in';
  C_OUT_FNAME = 'royfloyd.out';
var
  fin, fout: text;
  graph: array[1..100, 1..100] of word;
  n, i, j, k: integer;
begin
  AssignFile(fin, C_IN_FNAME); Reset(fin);
  Read(fin, n);
  for i := 1 to n do
  begin
    for j := 1 to n do
    begin
      Read(fin, graph[i,j]);
    end;
  end;
  Close(fin);

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

  AssignFile(fout, C_OUT_FNAME); Rewrite(fout);
  for i := 1 to n do
  begin
    for j := 1 to n do
    begin
      Write(fout, graph[i,j], ' ');
    end;
    Writeln(fout, '');
  end;
  Close(fout);
end.