Cod sursa(job #534955)

Utilizator ladyLittle Lady lady Data 16 februarie 2011 16:45:25
Problema Parcurgere DFS - componente conexe Scor 10
Compilator fpc Status done
Runda Arhiva educationala Marime 0.83 kb
type matrice=array[0..100,0..100] of integer;
     vector=array[0..10000] of integer;

var a:matrice;
    v:vector;
    n,m:longint;

procedure citire(var a:matrice; var n,m:longint);
var i,j,c:longint;
begin
assign(input,'dfs.in');reset(input);
 readln(n,m);
 for c:=1 to m do begin
  readln(i,j);
  a[i,j]:=1;
  a[j,i]:=1;
 end;
close(input);
end;

procedure df(k:longint);
var i:longint;
begin
 v[k]:=1;
 for i:=1 to n do
  if (v[i]=0) and (a[k,i]<>0) then df(i);
end;

procedure scrie;
var i,j,nr:longint;
begin
assign(output,'dfs.out');rewrite(output);
 if m=0 then begin
  write(0);
  exit;
 end;
nr:=0;
i:=1;
repeat
 df(i);
 i:=0;
 inc(nr);
 for j:=1 to n do
  if v[j]=0 then begin
   i:=j;
   break;
  end;
until i=0;
 write(nr);
close(output);
end;

begin
 citire(a,n,m);
 scrie;
end.