Pagini recente » Cod sursa (job #2425452) | Cod sursa (job #1683361) | Rating Ionut Cristian Ceausu (PreafericitulChao) | Cod sursa (job #834251) | Cod sursa (job #1401224)
program dfs1; //parcurgerea in adancime a unui graf neorientat
var a:array[1..100000] of array of longint; //lista dinamica de adiacenta
vizitat:array[1..100000] of byte;
n,m,i,j,k,x,y:longint;
f,g:text;
procedure dfs(x:longint); //se viziteaza recursiv toate nodurile conexe
var i:longint;
begin
vizitat[x]:=1;
for i:=1 to length(a[x])-1 do
if vizitat[a[x,i]]=0 then dfs(a[x,i]);
end;
BEGIN
assign(f,'dfs.in');reset(f);
readln(f,n,m);
for i:=1 to n do
setlength(a[i],1); //alocare dinamica
for i:=1 to m do
begin
readln(f,x,y); //conex. de la nodul x la y
setlength(a[x],length(a[x])+1);
a[x,length(a[x])-1]:=y;
setlength(a[y],length(a[y])+1);
a[y,length(a[y])-1]:=x;
end;
close(f);
for i:=1 to n do
if vizitat[i]=0 then
begin
inc(k);
dfs(i);
end;
assign(g,'dfs.out');rewrite(g);
write(g,k);
close(g);
END.