Cod sursa(job #1430593)

Utilizator Stefan.Andras Stefan Stefan. Data 8 mai 2015 17:29:22
Problema Parcurgere DFS - componente conexe Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 1.07 kb
program repet;
const Maxnod = 100005;
      Maxmuchii = 200005;
var f, g:text;
    n, m, i, j, x, k, contor:longint;
    t:array[0..1, 1..Maxmuchii*2] of longint;
    start:array[1..Maxnod] of longint;
    viz:array[1..Maxnod] of boolean;
    bufin, bufout:array[1..1 shl 17] of char;
procedure df(nod:longint);
var z :longint;
begin
   viz[nod] := true;
   z := start[nod];
   while z <> 0 do
      begin
         if not viz[t[0, z]] then df(t[0, z]);
         z := t[1, z];
      end;
end;
begin
   assign(f, 'dfs.in'); reset(f);
   assign(g, 'dfs.out'); rewrite(g);
   readln(f, n, m);
   k := 0;
   for x := 1 to m do
      begin
         readln(f, i, j);
         inc(k);
         t[0, k] := j;
         t[1, k] := start[i];
         start[i] := k;
         inc(k);
         t[0, k] := i;
         t[1, k] := start[j];
         start[j] := k;
      end;
   contor := 0;
   for i := 1 to n do
      if not viz[i] then
         begin
            inc(contor);
            df(i);
         end;
   writeln(g, contor);
   close(f); close(g);
end.