Pagini recente » Cod sursa (job #1720564) | Cod sursa (job #703208) | Cod sursa (job #993025) | Cod sursa (job #1600017) | Cod sursa (job #1246708)
program dfs;
type
lista=^date;
date=record
m:longint;
next:lista;
end;
tabel=array[0..100001] of lista;
tab=array[0..100001] of byte;
buf=array[0..1 shl 17] of char;
var
t:tabel; ff1,ff2:buf;
fr:tab; a:lista;
n,m,i,k,x,y:longint;
f1,f2:text;
procedure dfs(x:longint);
var a:lista;
begin
fr[x]:=1;
a:=t[x];
while a<>nil do begin
if fr[a^.m]=0 then dfs(a^.m);
a:=a^.next;
end;
end;
begin
assign (f1,'dfs.in');
assign (f2,'dfs.out');
reset (f1);
rewrite (f2);
settextbuf(f1,ff1);
settextbuf(f2,ff2);
readln (f1,n,m);
for i:=1 to m do begin
readln (f1,x,y);
new(a);
a^.m:=x;
a^.next:=t[y];
t[y]:=a;
new(a);
a^.m:=y;
a^.next:=t[x];
t[x]:=a;
end;
k:=0;
for i:=1 to n do
if fr[i]=0 then begin k:=k+1; dfs(i); end;
writeln (f2,k);
close (f1);
close (f2);
end.