Cod sursa(job #542158)

Utilizator killerkaliKovacs Levente killerkali Data 25 februarie 2011 21:02:00
Problema Sortare topologica Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 1.13 kb
type vektor=array[1..100000] of longint;
     matrix=array[1..22000,1..22000] of longint;
     mutato=^elem;
     elem=record
      inf:integer;
      kov:mutato;
      end;
var f,g:text;
    jart:vektor;
    x:matrix;
    a,b,k,n,i,m:longint;
    top:mutato;
procedure push(var top:mutato;k:integer);
 var p:mutato;
  begin
   new(p);
   p^.inf:=k;
   p^.kov:=top;
   top:=p;
  end;
procedure df(var  jart:vektor; k:integer);
 var i:integer;
  begin
   jart[k]:=1;
   for i:= 1 to n do
    begin
     if (x[k,i]=1) and (jart[i]=0)
      then
       df(jart,i);
    end;
   push(top,k);
  end;
procedure kiiras(top:mutato; var g:text);
 var p:mutato;
  begin
   p:=top;
   while p<>nil do
    begin
     write(g,p^.inf,' ');
     p:=p^.kov;
    end;
   close(g);
   end;
begin
assign(f,'sortaret.in');
reset(f);
readln(f,n,m);
top:=nil;
for i:= 1 to m do
 begin
  readln(f,a,b);
  x[a,b]:=1;
 end;
close(f);
for i:= 1 to n do
 jart[i]:=0;
for i:= 1  to n do
 if jart[i]=0
  then
   df(jart,i);
assign(g,'sortaret.out');
rewrite(g);
kiiras(top,g);
end.
















begin