Cod sursa(job #1105645)

Utilizator DjokValeriu Motroi Djok Data 11 februarie 2014 22:30:06
Problema Parcurgere DFS - componente conexe Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.99 kb
type list=^cell;
       cell=record
         inf:longint;
         st:list;
       end;

var lda:array[1..100001] of list;
    viz:array[1..100001] of byte;
    a,b,n,m,k,i:longint;


  procedure add(v:longint; var r:list);
   var p:list;
    begin
     new(p);
      p^.inf:=v;
      p^.st:=r;
      r:=p;
    end;

   procedure dfs(nod:longint);
    var r:list;
     begin
      viz[nod]:=1;
       r:=lda[nod];
       while r<>nil do
        begin
         if viz[r^.inf]=0 then dfs(r^.inf);
          r:=r^.st;
        end;
     end;

begin
assign(input,'dfs.in');
assign(output,'dfs.out');
reset(input);
rewrite(output);
  read(n); readln(m);
   for i:=1 to n do
    lda[i]:=nil;
   for i:=1 to m do
    begin
     read(a); readln(b);
     add(a,lda[b]);
     add(b,lda[a]);
    end;

    for i:=1 to n do
     if viz[i]=0 then begin inc(k); dfs(i); end;

     writeln(k);





close(input);
close(output);
{Totusi este trist in lume}
end.