uses crt;
var
a: array [1..100,1..100] of integer;
n,m,x,y,i,j,b: integer;
procedure rec(v: integer);
var
k: integer;
begin
for k:=1 to n do
if a[v,k]=1 then
if k=i then b:=1- предпологаю что тут как то нужно исправть, но всю голову уже сломал и не пойму как.

else rec(k);
end;
begin
writeln('Vvedite vershini i rebra');
readln(n, m);
for i:=1 to n do
for j:=1 to n do
a[i,j]:=0;
for i:=1 to m do
begin
write('Koordinati ',i,' rebra- ');
readln(x,y);
a[x,y]:=1;
end;
b:=2;
for i:=1 to n do
rec(i);
if b=1 then
writeln('Graph imeet cikl')
else
writeln('Graph ne imeet cicla');
readln;
end.