Pagini recente » Cod sursa (job #1914082) | Cod sursa (job #2459512) | Cod sursa (job #1146765) | Cod sursa (job #3245607) | Cod sursa (job #174227)
Cod sursa(job #174227)
program sortare_topologica;
type lista=^element;
element=record
info:longint;
a:lista;
end;
var f,g:text;
fii:array[1..500] of lista;
viz:array[1..50000] of 0..1;
l:lista;
i,n,m,q,a,b:longint;
procedure dfs(q:longint);
var w,p:lista;
begin
viz[q]:=1;
p:=fii[q];
while p<>nil do
begin
if viz[p^.info]=0 then dfs(p^.info);
p:=p^.a;
end;
new(w);
w^.info:=q;
w^.a:=l;
l:=w;
end;
begin
assign(f,'sortaret.in'); reset(f);
readln(f,n,m);
for i:=1 to n do
begin
viz[i]:=0;
fii[i]:=nil;
end;
for i:=1 to m do
begin
readln(f,a,b);
new(l);
l^.info:=b;
l^.a:=fii[a];
fii[a]:=l;
end;
close(f);l:=nil;
for i:=1 to n do
if viz[i]=0 then dfs(i);
assign(g,'sortaret.out'); rewrite(g);
while l<>nil do
begin
write(g,l^.info,' ');
l:=l^.a;
end;
close(g);
end.