Cod sursa(job #1346992)

Utilizator ButnaruButnaru George Butnaru Data 18 februarie 2015 18:41:09
Problema Sortare topologica Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.72 kb
program sortaret;
type
lista=^date;
date=record
m:longint;
next:lista;
end;
tabel=array[0..50001] of lista;
tab=array[0..50001] of longint;
var
fr,sol:tab; a:lista;
t:tabel;
nr,i,x,y,n,m:longint;
f,g:text;
procedure dfs(x:longint);
var a:lista;
begin
a:=t[x];
while a<>nil do begin
if fr[a^.m]=0 then begin
fr[a^.m]:=1; dfs(a^.m);
end;
a:=a^.next;
end;
nr:=nr+1; sol[nr]:=x;
end;
begin
assign (f,'sortaret.in');
assign (g,'sortaret.out');
reset (f);
rewrite (g);
readln (f,n,m);
for i:=1 to m do begin
readln (f,x,y);
new(a); a^.m:=y; a^.next:=t[x]; t[x]:=a; end;
for i:=1 to n do
if fr[i]=0 then begin fr[i]:=1; dfs(i); end;
for i:=nr downto 1 do write (g,sol[i],' ');
close (f);
close (g);
end.