Cod sursa(job #1090367)

Utilizator alexcruceruAlexandru Cruceru alexcruceru Data 22 ianuarie 2014 17:26:55
Problema Parcurgere DFS - componente conexe Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.75 kb
program DF;
type sir=array[1..100000] of word;
type matrice= array[1..50,1..50] of byte;
var a:matrice;
    b:sir;
    f,g:text;
    i,j,n,m,k:word;

procedure citire(var x:matrice;var n,m:word);
  var f:text;i,g,h:word;
  begin
  assign(f,'dfs.in');
  reset(f);
  readln(f,n,m);
  for i:=1 to m do
    begin
    readln(f,g,h);
    a[g,h]:=1;
    end;
  close(f);
  end;

procedure DFS(i:byte);
  var j:word;
  begin
  b[i]:=k;
  for j:=1 to n do
  if (b[j]=0)and(a[i,j]=1) then DFS(j);
  end;

begin {program principal}
citire(a,n,m);
for i:=1 to n do
 for j:=1 to n do
 a[i,j]:=0;

k:=1;
for i:=1 to n do
  begin
  if b[i]=0 then DFS(i);
  inc(k);
  end;

assign(g,'dfs.out');
rewrite(g);
write(g,k);
close(g);
end.