Cod sursa(job #552725)

Utilizator FLORINSTELISTUOprea Valeriu-Florin FLORINSTELISTU Data 12 martie 2011 19:12:59
Problema Componente tare conexe Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 1.3 kb
program tare_conexitate;
type nod=^graf;
       graf=record
         inf:longint;
         urm:nod;
          end;
var a,v:array[1..100000]of nod;f,g:text;
    viz:array[1..200000]of 0..1;p,q:nod;
    c,post:array[1..200000]of longint;
    n,m,i,x,y,nr:longint;
procedure dfs(x:longint);
var p:nod;
begin
      viz[x]:=1;
      p:=v[x];
        while p<>nil do begin
          if viz[p^.inf]=0 then dfs(p^.inf);
          p:=p^.urm;
           end;
        inc(nr);
        post[nr]:=x;
         end;
procedure dfst(x:longint);
var q:nod;
begin
       viz[x]:=0; write(g,x,' ');
       q:=a[x];
        while q<>nil do begin
         if viz[q^.inf]<>0 then dfst(q^.inf);
         q:=q^.urm;
          end;
        end;
begin
     assign(f,'ctc.in');reset(f);
     assign(g,'ctc.out');rewrite(g);
       readln(f,n,m);
        for i:=1 to m do begin
          readln(f,x,y);
        new(p); p^.inf:=y; p^.urm:=v[x]; v[x]:=p;
        new(q); q^.inf:=x; q^.urm:=a[y]; a[y]:=q;
         end;
          for i:=1 to n do
           if viz[i]=0 then dfs(i);
          for i:=n downto 1 do
           if viz[post[i]]<>0 then begin
            dfst(post[i]);
             writeln(g);
             end;
             dispose(q);dispose(p);
            close(f);close(g);
           end.