Cod sursa(job #1577531)

Utilizator iondodon1998Dodon Ion iondodon1998 Data 23 ianuarie 2016 15:30:49
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator fpc Status done
Runda Arhiva educationala Marime 0.86 kb
Program RoyFloydWarshall;
type matrice=array[1..100,1..100] of integer;
	var n:shortint;
	f1,f2:text;
	l:matrice;

Procedure afisare;
	var i,j:shortint;
	begin
		for i:=1 to n do 
			begin
				for j:=1 to n do 
					write(f2,l[i,j],' ');
				writeln(f2);
			end;
	end;

Procedure citiredate;
	var i,j:shortint;
	begin
		readln(f1,n);
		for i:=1 to n do 
			begin
				for j:=1 to n do 
					read(f1,l[i,j]);
				readln(f1);
			end;
	end;

Procedure royfloyd;
	var i,j,k:shortint;
	begin
		for k:=1 to n do 
			for i:=1 to n do 
				for j:=1 to n do 
					if (l[i,j]>l[i,k]+l[k,j]) and (l[i,j]<>0) then 
						l[i,j]:=l[i,k]+l[k,j];
	end;

Procedure main;
	begin
		citiredate;
		royfloyd;
		afisare;
	end;



begin
	assign(f1,'royfloyd.in'); reset(f1);
	assign(f2,'royfloyd.out'); rewrite(f2);
	main;
	close(f1);
	close(f2);
end.