Cod sursa(job #516053)

Utilizator zseeZabolai Zsolt zsee Data 23 decembrie 2010 00:10:23
Problema Parcurgere DFS - componente conexe Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.76 kb
type Pgr = ^Tgr;
 Tgr = record
        b:longword;
        kov:Pgr;
       end;
var be,ki:text;
 n,m,i,s,x,y:longword;
 a:array[1..100000] of boolean;
 v:array[1..100000] of Pgr;
 
procedure dfs(start:longword);
var p:Pgr;
begin
 if a[start] then exit;
 a[start]:=true;
 p:=v[start];
 while p<>nil do
  begin
   dfs(p^.b);
   p:=p^.kov;
  end;
end;

procedure add(a,b:longword);
var p:Pgr;
begin
 new(p);
 p^.kov:=v[a];
 p^.b:=b;
 v[a]:=p;
end;

begin
 assign(be,'dfs.in');
 assign(ki,'dfs.out');
 reset(be);
 rewrite(ki);
 readln(be,n,m);
 for i:=1 to m do
  begin
   readln(be,x,y);
   add(x,y);
   add(y,x);
  end;
 for i:=1 to n do
  if not a[i] then
   begin
    inc(s);
    dfs(i);
   end;
 writeln(ki,s);
 close(ki);
end.