Cod sursa(job #1502518)

Utilizator ili226Vlad Ilie ili226 Data 14 octombrie 2015 19:09:00
Problema Parcurgere DFS - componente conexe Scor 95
Compilator fpc Status done
Runda Arhiva educationala Marime 0.76 kb
type nd=^nod;
     nod=record
	  val:longint;
          next:nd
         end;
     graf=array[1..100003]of nd;
var g:graf;
    f:text;
    n,m,x,y,k,i:longint;
    viz:array[1..100003]of boolean;
    p:nd;
procedure parcurge(x:longint);
var p:nd;
begin
viz[x]:=true;
p:=g[x];
while p<>nil do
 begin
  if not(viz[p^.val])then
   parcurge(p^.val);
  p:=p^.next;
 end;
end;
begin
assign(f,'dfs.in');
reset(f);
readln(f,n,m);
for i:=1 to m do
 begin
  readln(f,x,y);
  new(p);
  p^.val:=x;
  p^.next:=g[y];
  g[y]:=p;
  new(p);
  p^.val:=y;
  p^.next:=g[x];
  g[x]:=p;
 end;
close(f);k:=0;
for i:=1 to n do
 if not(viz[i]) then
  begin
   inc(k);
   parcurge(i);
  end;
assign(f,'dfs.out');
rewrite(f);
writeln(f,k);
close(f);
end.