Cod sursa(job #1667775)

Utilizator crysis2mdRusu Cristian crysis2md Data 29 martie 2016 11:01:03
Problema Parcurgere DFS - componente conexe Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.84 kb
type adresa=^nod;
     nod= record
          inf:longint;
          adr:adresa;
          end;
var n,m,i,cnx,x,y:longint;
    q:adresa;
    vc:array[1..100000]of adresa;
    viz:array[1..100000]of byte;
procedure dfs(k:longint);
var p:adresa;
begin
     p:=vc[k];
     viz[k]:=1;
     while(p<>nil)do
     begin
          if(viz[p^.inf]=0)then
          dfs(p^.inf);
          p:=p^.adr;
     end;
end;
 
begin
assign(input,'dfs.in');
reset(input);
read(n,m);
for i:=1 to m do
begin
     read(x,y);
     new(q);
     q^.inf:=x;
     q^.adr:=vc[y];
     vc[y]:=q;
     new(q);
     q^.inf:=y;
     q^.adr:=vc[x];
     vc[x]:=q;
end;
close(input);
for i:=1 to n do
    if(viz[i]=0)then
    begin
         dfs(i);
         cnx:=cnx+1;
    end;
assign(output,'dfs.out');
rewrite(output);
write(cnx);
close(output);
end.