Pagini recente » Monitorul de evaluare | Istoria paginii runda/minune2 | Autentificare | Istoria paginii runda/sg435346t | Cod sursa (job #1359940)
program dfs_info;
type lista = array[0..1,1..400000] of longint;
type pornire = array[1..100000] of longint;
var f,g:text;
n,m,k,i,j,numar:longint;
viz:array[1..100000] of byte;
t:lista;
start:pornire;
procedure df(nod:longint);
var p:longint;
begin
p:=start[nod];
viz[nod]:=1;
while p <> 0 do
begin
if viz[t[0,p]] = 0 then
df(t[0,p]);
p:=t[1,p];
end;
end;
begin
assign(f,'dfs.in'); reset(f);
assign(g,'dfs.out'); rewrite(g);
readln(f,n,m);
while not seekeof(f) do
begin
inc(k);
readln(f,i,j);
t[0,k]:=j;
t[1,k]:=start[i];
start[i]:=k;
inc(k);
t[0,k]:=i;
t[1,k]:=start[j];
start[j]:=k;
end;
for i:=1 to n do
if viz[i] = 0 then
begin
inc(numar);
df(i);
end;
writeln(g,numar);
close(f); close(g);
end.