Cod sursa(job #154328)

Utilizator dobreDobre Catalin Andrei dobre Data 11 martie 2008 09:34:28
Problema Parcurgere DFS - componente conexe Scor 60
Compilator fpc Status done
Runda Arhiva educationala Marime 0.89 kb
const fi='dfs.in';fo='dfs.out';
type pnod=^nod;
      nod=record
       x:integer;
       urm:pnod;
      end;

var v:array[1..100000]of pnod;
    viz:array[1..100000]of byte;
    f,g:text;
    i,n,m:integer;
    ii,jj:integer;
    count:integer;
procedure add(ii,jj:integer);
var p:pnod;
begin
p:=new(pnod);
p^.x:=jj;
p^.urm:=v[ii];
v[ii]:=p;
end;

procedure DFS(i:integer);
var p:pnod;
    ii:integer;
begin
viz[i]:=1;
p:=V[i];
while p<>nil do begin
       ii:=p^.x;
       if viz[ii]=0 then DFS(ii);
       p:=p^.urm;
      end;
end;

begin
assign(f,fi);reset(f);
assign(g,fo);rewrite(g);
readln(f,n,m);
for i:=1 to m do begin
     readln(f,ii,jj);
     add(ii,jj);
     add(jj,ii);
    end;
fillchar(viz,sizeof(viz),0);
for i:=1 to n do
    if viz[i]=0 then begin
        inc(count);
        DFS(i);
       end;
writeln(g,count);
close(f);
close(g);
end.