Cod sursa(job #412365)

Utilizator DanielGGlodeanu Ioan Daniel DanielG Data 5 martie 2010 15:32:50
Problema Parcurgere DFS - componente conexe Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 1 kb
var a:array[1..1000,1..1000] of 0..1;
viz,st:array[1..1000] of integer;
f:text;
i,j,k,y,n,m,x,v:integer;
procedure citire;
begin
assign(f,'dfs.in');reset(f);
read(f,n,m);
for i:=1 to m do
     begin
        read(f,x,y);
        a[x,y]:=1;
     end;
close(f);
end;
procedure afisare;
var nr:integer;
begin
assign(f,'dfs.out');rewrite(f);
nr:=0;
for i:=1 to n do nr:=nr+viz[i];
writeln(f,nr);
close(f);
end;
procedure dfs;
begin
for i:=1 to n do viz[i]:=0;
st[1]:=1; viz[1]:=1; k:=1;
while k>0 do
        begin
        v:=st[k]; y:=0;
        for i:=1 to n do
                if (a[v,i]=1) and (viz[i]=0) then
                        begin
                          y:=i;
                          break;
                        end;
        if y=0 then dec(k)
                else
                  begin
                    viz[y]:=1;
                    inc(k);
                    st[k]:=y;
                  end;
        end;
end;
begin
citire;
dfs;
afisare;
end.