Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program DFS_1;
- var
- Arid : array of array[0..1000] of integer;
- used : array of boolean;
- F : boolean;
- i, n, m, a, b : integer;
- procedure DFS(p : integer; plast : integer = 0);
- var i:integer;
- begin
- used[p] := true;
- for i := 1 to Arid[p][0] do
- if (used[Arid[p][i]] = false) then
- begin
- plast := p;
- DFS(Arid[p][i], plast);
- end
- else
- if plast <> Arid[p][i] then
- F := false;
- end;
- begin
- read(n,m);
- if (n <= m) or (n - 1 <> m) or (n < 0) or (m < 0) then
- begin
- writeln('False');
- end
- else
- begin
- //************************
- setlength(Arid, n);
- setlength(used, n);
- F := true;
- //инициализация
- for i := 0 to n-1 do
- begin
- Arid[i][0] := 0;
- used[i] := false;
- end;
- for i := 0 to m-1 do
- begin
- read(a, b);
- Arid[a-1][0] += 1;
- Arid[a-1][Arid[a-1][0]] := b - 1;
- Arid[b-1][0] += 1;
- Arid[b-1][Arid[b-1][0]] := a - 1;
- end;
- DFS(0);
- for i := 0 to n-1 do
- if (used[i] = false) then F := false;
- if F then
- writeln('True')
- else
- writeln('False');
- end;
- read(i);
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement