Pagini recente » Cod sursa (job #2149279) | Cod sursa (job #1572215) | Cod sursa (job #1650130) | Cod sursa (job #1168988) | Cod sursa (job #1344973)
program ex;
type pcelula=^celula;
celula=record
adr:pcelula;
x:longint;
End;
var a:array[1..100000] of boolean;
v:array[1..100000] of pcelula;
f,g:text;
i,j,m,n,s,nod1,nod2:longint;
procedure add(nod1,nod2:longint);
var aux:pcelula;
begin
new(aux);
aux^.x:=nod2;
aux^.adr:=v[nod1];
v[nod1]:=aux;
end;
procedure dfs(nod:longint);
var p:pcelula;
begin
a[nod]:=true;
p:=v[nod];
While p<>nil do begin
If a[p^.x]=false then dfs(p^.x);
p:=p^.adr;
End;
End;
Begin
For i:=1 to n do
v[i]:=nil;
assign(f,'dfs.in');Reset(f);
assign(g,'dfs.out');Rewrite(g);
Readln(f,n,m);
For i:=1 to n do
v[i]:=nil;
For i:=1 to m do begin
Readln(f,nod1,nod2);
add(nod1,nod2);
add(nod2,nod1);
End;
For i:=1 to n do
A[i]:=false;
s:=0;
For i:=1 to n do
If not(a[i]) then begin dfs(i);
s:=s+1;
End;
Writeln(g,s);
Close(f);
Close(g);
End.