Cod sursa(job #869668)

Utilizator andrei_toaderToader Andrei Sorin andrei_toader Data 1 februarie 2013 22:27:43
Problema Parcurgere DFS - componente conexe Scor 15
Compilator fpc Status done
Runda Arhiva educationala Marime 0.85 kb
program dfs;
var f,g:text;
    n,m:longint;
    a:array of array of longint;
    nr,x,y,i:longint;
    viz:array[1..100000] of 0..1;
    bufin,bufout:array[1..65000] of byte;

procedure df (nod:longint);
var i:longint;
begin
 for i:=1 to a[nod,0] do
  if viz[a[nod,i]]=0 then
  begin
   viz[a[nod,i]]:=1;
   df(a[nod,i]);
  end;
end;

begin
 assign (f,'dfs.in'); reset (f);
 assign (g,'dfs.out'); rewrite (G);
 settextbuf (f,bufin);
 settextbuf (g,bufout);
 readln (F,n,m);
 setlength (a,n+1,1);
 for i:=1 to m do
 begin
   readln (f,x,y);
   setlength (a[x],length(a[x])+1);
   inc(a[x,0]);
   a[x,a[x,0]]:=y;
   setlength(a[y],length(a[y])+1);
   inc(a[y,0]);
   a[y,a[y,0]]:=1;
 end;
  for i:=1 to n do
   if viz[i]=0 then
   begin
    inc(nr);
    viz[i]:=1;
    df (i);
   end;
   write (g,nr);
   close (f); close (G);
end.