Олимпиадные задачи по программированию. Лучшие решения. Часть 1. Ускова О.Ф - 58 стр.

UptoLike

{Выделение компоненты связности графа}
Var I,J,K,T:Integer;
Begin
T:=-1;
For I:=1 to N do
If not BA[I] Then Begin T:=I;Break End;
If T=-1 Then Begin GetPodgraph:=False;Exit End;
M[T,T]:=True;
For I:=1 to N do
For J:=1 to N do
For K:=1 to n Do
If M[J,J] Then
If M[J,K] Then M[K,K]:=True;
For I:=1 to N do
If not BA[I] and M[I,I] Then BA[I]:=True;
GetPodGraph:=True
End;
Procedure Run;
{Вычисление количества подграфов}
Var I,J:Integer;
Begin
FC:=0;
For I:=1 to N do
For J:=1 to N do
If I<>J Then M[I,J]:=Check(I,J);
While GetPodgraph do
Begin
Inc(FC);