Курсовая работа: Алгоритмы на графах. Кратчайшие расстояния на графах
const
FREE=1;
DONE=2;
var
G,color : array[1..50,1..100] of byte;
D : array[1..50] of longint;
kG,sled : array[1..50] of byte;
path : array[1..100] of byte;
MinD,is : longint;
i,j,x,y,A,B,C,N,M,ks,LabC : byte;
Yes : boolean;
procedure OutRes;
begin
writeln(ks+2);
writeln(A); for i:=1 to ks do writeln(sled[i]); writeln(B);
end;
procedure DFS(v:byte);
var j : byte;
begin
for j:=1 to kG[v] do
if (color[v,j]=FREE)
then
begin
if (G[v,j]=B) and (LabC=1)
then begin OutRes; halt; end;
if G[v,j]=C then LabC:=1;
color[v,j]:=DONE; inc(ks); sled[ks]:=G[v,j];
DFS(G[v,j]);
color[v,j]:=FREE; sled[ks]:=0; dec(ks);