Cod sursa(job #1214439)

Utilizator Alex1199Alex Bercea Alex1199 Data 30 iulie 2014 13:21:46
Problema Sortare topologica Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.86 kb
type point =^liste;
     liste= record
       info :longint;
       next :point;
      end;
var virf:array[1..50000] of point;
    visit, a:array[1..50000] of longint;
    p:point;
    i, k, n, m, c : longint;
 procedure DFS(x:longint);
 var p:point;
  begin
  visit[x]:=1;
  p:=virf[x];
   while p<>nil do
    begin
     if visit[p^.info]=0 then
                  DFS(p^.info);
                  p:=p^.next;
   end;
   a[k]:=x;
   dec(k);
  end;
begin

 assign(input,'sortaret.in');
  reset(input);
  readln(n,m);

  For i:=1 to m do
  begin
   new(p);
    readln(c,p^.info);
    p^.next:=virf[c];
    virf[c]:=p;
  end;
 close(input);

 k:=n;

   for i:=1 to n do
    if visit[i]=0 then
         dfs(i);



 Assign(output,'sortaret.out');
  rewrite(output);
   for i:=1 to n do
      write(a[i],' ');
 close(output);
end.