Cod sursa(job #153500)

Utilizator hitmannCiocas Radu hitmann Data 10 martie 2008 16:27:13
Problema Parcurgere DFS - componente conexe Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.79 kb
program comp_conex;
type max=1..100000;
     pnod=^nod;
     nod=record
         i:max;
         urm:pnod;
         end;
var a:array[1..100000]of pnod;
    s:array[1..100000]of integer;
    c,n,m,i,nr:longint;
    g:text;
procedure citire;
var f:text;
    x,y:max;
    p:pnod;
begin
assign(f,'dfs.in'); reset(f);
read(f,n,m);
for i:=1 to m do
 begin
 read(f,x,y);
 new(p); p^.i:=y; p^.urm:=a[x]; a[x]:=p; new(p); p^.i:=x; p^.urm:=a[y];a[y]:=p;
 end;
 close(f);
end;
procedure viz(i:max);
var p:pnod;
begin
if s[i]=0 then inc(nr);
s[i]:=1;
p:=a[i];
while p<>nil do
 begin
 if s[p^.i]=0 then viz(p^.i);
 p:=p^.urm;
 end;
end;
begin {pp}
citire;
for i:=1 to n do
 if (s[i]=0)then begin inc(c); viz(i); end;
assign(g,'dfs.out'); rewrite(g);
write(g,c); close(g);
end.