Pagini recente » Cod sursa (job #3143787) | Cod sursa (job #1073710) | Cod sursa (job #1963127) | Cod sursa (job #2545742) | Cod sursa (job #841963)
Cod sursa(job #841963)
program sortaretopologica;
type lista=^celula;
celula=record
info:longint;
next:lista;
end;
var f:text;
p,v,r,q:lista;
n,m,i,x,y:longint;
a:array [1..50000] of longint;
t:array [1..5000,1..5000] of byte;
begin
assign(f,'sortaret.in');
reset(f);
readln(f,n,m);
for i:=1 to m do
begin
readln(f,x,y);
t[x,y]:=1;
inc(a[y]);
end;
new(p);
i:=1;
while a[i]<>0 do inc(i);
p^.info:=i;
p^.next:=nil;
v:=p;
inc(i);
while i<=n do
begin
if a[i]=0 then begin
new(r);
r^.info:=i;
r^.next:=nil;
v^.next:=r;
v:=r;
end;
inc(i);
end;
close(f);
assign(f,'sortaret.out');
rewrite(f);
while p<>nil do
begin
write(f,p^.info,' ');
for i:=1 to n do
if t[p^.info,i]=1 then
begin
t[p^.info,i]:=0;
dec(a[i]);
if a[i]=0 then
begin
new(r);
r^.info:=i;
r^.next:=nil;
v^.next:=r;
v:=r;
end;
end;
p:=p^.next;
end;
close(f);
end.