Cod sursa(job #1089360)

Utilizator TrifanTTrifan TrifanT Data 21 ianuarie 2014 17:29:54
Problema Parcurgere DFS - componente conexe Scor 10
Compilator fpc Status done
Runda Arhiva educationala Marime 1.19 kb
type lista=^celula
;
     celula=record
        info: longint;
        pred: lista;
        end;

var a: array[1..100000] of lista;
    viz: array[1..100000] of boolean;
    con, n, m, k, j, i: longint;
    r, v, p: lista;
    u: boolean;

procedure Delete(r: lista; nivel: longint);

begin
 if r<>nil then Begin
                if (viz[r^.info]) and (r^.pred=nil) then u:=false;
                 viz[r^.info]:=true;
                 delete(a[r^.info], nivel+1);
                 delete(r^.pred, nivel+1);
                end;


end;

begin
 assign(input,'dfs.in');
 assign(output,'dfs.out');
 reset(input);
 rewrite(output);

 readln(n, m);
 for i:=1 to n do a[i]:=nil;

 for i:=1 to m do
  begin
   readln(j, k);
   p:=a[j];
   new(a[j]);
   a[j]^.info:=k;
   a[j]^.pred:=p;
  end;

 con:=0;

 for i:=1 to n do begin
                        u:=true;
                        delete(a[i], 1);
                        if (not viz[i]) and u then begin

                        inc(con);  end;
                        viz[i]:=true;
   end;


  writeln(con);

close(input);
close(output);
end.























asdaas0asdas00asda