Cod sursa(job #1351789)

Utilizator mariusadamMarius Adam mariusadam Data 21 februarie 2015 11:33:01
Problema Parcurgere DFS - componente conexe Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.86 kb
program  dfs_infoarena;
var start:array[1..100000] of longint;
    bufin,bufout:array[1..200000] of byte;
    t:array[0..1,1..400000] of longint;
    viz:array[1..100000] of 0..1;
    n,m,i,j,k,u,nrc:longint;
    f,g:text;

procedure dfs(nod:longint);
var i,z:longint;
begin
 z:=start[nod];
 viz[nod]:=1;
 while z<>0 do
  begin
   if viz[t[0,z]]=0 then
    dfs(t[0,z]);
   z:=t[1,z];
  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);
 for u:=1 to m do
  begin
   readln(f,i,j);
   k:=k+1;
   t[0,k]:=j;
   t[1,k]:=start[i];
   start[i]:=k;
   k:=k+1;
   t[0,k]:=i;
   t[1,k]:=start[j];
   start[j]:=k;
  end;
 for u:=1 to n do
  if viz[u]=0 then
   begin
    dfs(u);
    nrc:=nrc+1;
   end;
 writeln(g,nrc);
 close(f);
 close(g);
end.