Cod sursa(job #1501815)

Utilizator ili226Vlad Ilie ili226 Data 13 octombrie 2015 21:01:03
Problema Sortare topologica Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.93 kb
type nd=^nod;
     nod=record
          val:word;
          next:nd;
         end;
     graf=array[1..50003]of nd;
var f:text;
    p:nd;
    g:graf;
    x,y,m,n,i,j:word;
    nod_de_start,folosit:array[1..50003]of boolean;
    coada:array[1..50003]of word;
begin
assign(f,'sortaret.in');
reset(f);
read{ln}(f,n,m);
for i:=1 to n do
 nod_de_start[i]:=true;
for i:=1 to m do
 begin
  read{ln}(f,x,y);
  nod_de_start[y]:=false;
  new(p);
  p^.val:=y;
  p^.next:=g[x];
  g[x]:=p
 end;
close(f);
j:=0;
for i:=1 to n do
 if nod_de_start[i] then
  begin
   inc(j);
   coada[j]:=i;
   folosit[i]:=true
  end;
i:=0;
repeat
inc(i);
p:=g[coada[i]];
while p<>nil do
 begin
  if not folosit[p^.val] then
   begin
    inc(j);
    coada[j]:=p^.val;
    folosit[p^.val]:=true;
   end;
  p:=p^.next;
 end;
until i=j;
assign(f,'sortaret.out');
rewrite(f);
for i:=1 to j do
 write(f,coada[i],' ');
close(f);
end.