Pagini recente » Cod sursa (job #543196) | Cod sursa (job #1760439) | Cod sursa (job #2912400) | Cod sursa (job #1176845) | Cod sursa (job #304048)
Cod sursa(job #304048)
Program Dfs;
type PNod=^Nod;
Nod=record
x : longint;
next : PNod;
end;
var viz : array[1..100000] of boolean;
v : array[1..100000] of PNod;
n,m,cnt,i : longint;
procedure Adauga(var p : PNod; x : longint);
var q : PNod;
begin
new(q);
q^.x:=x;
q^.next:=p;
p:=q;
end;
procedure Citeste;
var Intrare : text;
i,x,y : longint;
begin
assign(Intrare,'dfs.in');
reset(Intrare);
readln(Intrare,n,m);
for i:=1 to n do begin
viz[i]:=false;
v[i]:=nil;
end;
for i:=1 to m do begin
readln(Intrare,x,y);
Adauga(v[x],y);
Adauga(v[y],x);
end;
close(Intrare);
end;
procedure DFS(x : longint);
var p : PNod;
begin
viz[x]:=true;
p:=v[x];
while p<>nil do begin
if not viz[p^.x] then DFS(p^.x);
p:=p^.next;
end;
end;
procedure Scrie;
var Iesire : text;
begin
assign(Iesire,'dfs.out');
rewrite(Iesire);
write(Iesire,cnt);
close(Iesire);
end;
begin
Citeste;
cnt:=0;
for i:=1 to n do
if not viz[i] then begin
cnt:=cnt+1;
DFS(i);
end;
Scrie;
end.