Cod sursa(job #1603935)

Utilizator mirelabocsabocsa mirela mirelabocsa Data 17 februarie 2016 20:43:22
Problema Parcurgere DFS - componente conexe Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 1.03 kb
program mire;
var f,g:text;
    bufin,bufout:array[1..1 shl 16] of byte;
    n,m,nr,i:longint;
    a:array[0..1,0..200000] of longint;
    co,start:array[1..200000] of longint;
    viz:array[1..100000] of 0..1;
procedure citire;
var i,x,y,k:longint;
begin
  assign(f,'dfs.in'); reset(f);
  assign(g,'dfs.out'); rewrite(g);
  settextbuf(f,bufin);   settextbuf(g,bufout);
    readln(f,n,m);
    k:=0;
    for i:=1 to m do
      begin
         read(f,x,y);
         inc(k);
         a[0,k]:=y;
         a[1,k]:=start[x];
         start[x]:=k;
         inc(k);
         a[0,k]:=x;
         a[1,k]:=start[y];
         start[y]:=k;
      end;
  close(f);
end;
procedure df(nod:longint);
var p:longint;
begin
  viz[nod]:=1;
  p:=start[nod];
  while p<>0 do
   begin
      if viz[a[0,p]]=0 then
        df(a[0,p]);
      p:=a[1,p];
   end;

end;
begin
citire;
  nr:=0;
  for i:=1 to n do
    if viz[i]=0 then
      begin
        inc(nr);
        df(i);
      end;
    writeln(g,nr);
    close(g);
end.