Cod sursa(job #681391)

Utilizator ctlin04UAIC.VlasCatalin ctlin04 Data 16 februarie 2012 23:54:09
Problema Parcurgere DFS - componente conexe Scor 5
Compilator fpc Status done
Runda Arhiva educationala Marime 0.93 kb
Program adincime;
 type lista=^celula;
      celula=record
              inf:longint;
              next:lista;
              end;
var a:array [1..100001] of lista;
    b:array [1..100001] of byte;
    b1:array [1..1 shl 15] of char;
    v:lista;
    i,n,m,p,x,y:longint;
    fi,fo:text;
procedure dfs(k:longint);
 var r:lista;
begin
 r:=a[k];
 while r<>nil do begin
                   b[r^.inf]:=1;
                    dfs(r^.inf);
                   r:=r^.next;
                 end;
end;
begin
 assign(fi,'dfs.in');
  assign(fo,'dfs.out');
 settextbuf(fi,b1);
 reset(fi); rewrite(fo);
 readln(fi,n,m);
 for i:=1 to m do begin
                   readln(fi,x,y);
                    new(v);
                   v^.inf:=y; v^.next:=a[x]; a[x]:=v;
                   end;
 for i:=1 to n do
  if b[i]=0 then begin
                  b[i]:=1; inc(p); dfs(i);
                  end;
  write(fo,p);
 close(fo);
end.