Cod sursa(job #516394)

Utilizator FLORINSTELISTUOprea Valeriu-Florin FLORINSTELISTU Data 23 decembrie 2010 21:36:44
Problema Parcurgere DFS - componente conexe Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.92 kb
program comp_cnx;
type nod=^lista;
      lista=record
        info:longint;
        urm:nod;end;
var v:array[1..100005]of nod;
    n,m,i,cnt:longint;f,g:text;
    viz:array[1..100005]of 0..1;
procedure add(var dest:nod;val:longint);
var p:nod;
begin
   new(p);
    p^.info:=val;
    p^.urm:=dest;
    dest:=p;
   end;
procedure citire;
var x,y,i:longint;
begin
     assign(f,'dfs.in');reset(f);
     assign(g,'dfs.out');rewrite(g);
     readln(f,n,m);
   for i:=1 to m do begin
    readln(f,x,y);
     add(v[x],y);
     add(v[y],x);
     end;
    end;
procedure dfs(nodi:longint);
var p:nod;
begin
   viz[nodi]:=1;
   p:=v[nodi];
   while p<>nil do begin
    if viz[p^.info]=0 then dfs(p^.info);
    p:=p^.urm;
    end;
   end;
begin
    citire;
    for i:=1 to n do
     if viz[i]=0 then begin
      inc(cnt);
      dfs(i);
      end;
      write(g,cnt);
      close(f);close(g);
    end.