Pagini recente » Cod sursa (job #2287491) | Cod sursa (job #1897947) | Cod sursa (job #2406776) | Cod sursa (job #998061) | Cod sursa (job #1589376)
program dfs;
var t1,t2,start,viz:array of longint;
bufin,bufout:array[1..1 shl 17] of char;
ok:boolean;
n,m,c,l,St:longint;
f,g:text;
procedure citire;
var i,j,k:longint;
begin
assign(f,'dfs.in');reset(f);
settextbuf(f,bufin); settextbuf(f,bufout);
readln(f,n,m);
setlength(t1,m*2+1);
setlength(t2,m*2+1);
setlength(start,n+1);
setlength(viz,n+1);
k:=0;
for l:=1 to m do
begin
readln(f,i,j);
inc(k);
t1[k]:=i;
t2[k]:=start[j];
start[j]:=k;
inc(k);
t1[k]:=j;
t2[k]:=start[i];
start[i]:=k;
end;
close(f);
end;
procedure df(nod:longint);
var p:longint;
begin
p:=start[nod];
viz[nod]:=1;
while p>0 do
begin
if viz[t1[p]]=0 then
df(t1[p]);
p:=t2[p];
end;
end;
procedure afisare;
var i,p:longint;
begin
assign(g,'dfs.out');rewrite(g);
writeln(g,c);
close(g);
end;
begin
citire;
c:=0;
st:=1;
repeat
ok:=true;
for l:=st to n do
if viz[l]=0 then
begin
inc(c);
df(l);
ok:=false;
st:=l;
break;
end;
until ok=true;
afisare;
end.