Cod sursa(job #1095736)

Utilizator Mihai_ChihaiMihai Chihai Mihai_Chihai Data 31 ianuarie 2014 20:05:17
Problema Parcurgere DFS - componente conexe Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.98 kb
program dsf;
type lista=^celula;
    celula=record
        info:longint;
        urm:lista;
        end;
var a:array[1..100000] of lista;
    viz:array[1..100000] of 0..1;
    n,m,i,x,y,k:longint;
    r:lista;
procedure dsf(x:longint);
var i:longint;
    r:lista;
begin
  viz[x]:=1;
  r:=a[x];
  while r<>nil do begin
    if viz[r^.info]=0 then dsf(r^.info);
    r:=r^.urm;
    end;
  end;

begin
assign(input,'dsf.in'); reset(input);
assign(output,'dsf.out'); rewrite(output);
readln(n,m);
for i:=1 to m do begin
                readln(x,y);
                new(r);
                r^.info:=y;
                r^.urm:=a[x];
                a[x]:=r;
                new(r);
                r^.info:=x;
                r^.urm:=a[y];
                a[y]:=r;
                end;
k:=0;
for i:=1 to n do
        if viz[i]=0 then begin
                         dsf(i);
                         inc(k);
                         end;
write(k);
close(output);
end.