Cod sursa(job #1411181)

Utilizator ursu.daniel2202dUrsu Daniel ursu.daniel2202d Data 31 martie 2015 15:14:01
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.67 kb
program floyd_warshall;						//programare dinamica

var a:array[1..100,1..100] of longint;
	f,g:text;
	i,j,k,n:integer;



BEGIN 

	assign(f,'royfloyd.in');reset(f);
	readln(f,n);
	for i:=1 to n do
	  for j:=1 to n do
	    read(f,a[i,j]);
	close(f);

	for k:=1 to n do				//nod intermediar
	  for i:=1 to n do				//nod de pornire
	    for j:=1 to n do			//nod de finisare
	      if ((a[i,j]>a[i,k]+a[k,j]) or (a[i,j]=0)) and (a[i,k]<>0) and (a[k,j]<>0) and (i<>j) 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.