Pagini recente » Cod sursa (job #1135930) | Cod sursa (job #1907878) | Cod sursa (job #722815) | Cod sursa (job #3148392) | Cod sursa (job #1124737)
Program dfs;
type lista=^list;
list=record
info:longint;
leg:lista;
end;
var v:array[1..100000] of lista;
poz:array[1..100000] of 0..1;
f,q:text;
n,m,i,j,x,y,nr:longint;
procedure push(var p:lista; x:longint);
var q,h:lista;
begin
if p=nil then begin
new(q);
q^.leg:=nil;
q^.info:=x;
p:=q;
end
else begin
h:=p;
while h^.leg<>nil do h:=h^.leg;
new(q);
q^.info:=x;
q^.leg:=nil;
h^.leg:=q;
end;
end;
procedure back(p:lista);
var q:lista;
begin
q:=p;
while q<>nil do
begin
if poz[q^.info]=0 then begin poz[q^.info]:=1; back(v[q^.info]); end;
q:=q^.leg;
end
end;
begin
assign(f,'dfs.in');
reset(f);
assign(q,'dfs.out');
rewrite(q);
readln(f,n,m);
for i:=1 to m do begin read(f,x,y); push(v[x],y); push(v[y],x); end;
for i:=1 to n do
if poz[i]=0 then begin
inc(nr);
poz[i]:=1;
back(v[i]);
end;
writeln(q,nr);
close(f);
close(q);
end.