Pagini recente » Cod sursa (job #1445076) | Cod sursa (job #2254876) | Cod sursa (job #750207) | Cod sursa (job #777536) | Cod sursa (job #735548)
Cod sursa(job #735548)
Program Topologic_sortare;
type lista=^celula;
celula=record
info:longint;
next:lista;
end;
var fi,fo : text; q:lista; x,y : longint;
a,v : array[0..500000] of lista;
b,d : array[0..500000] of longint;
i,n,n2 : longint;
Procedure dfs(k:longint);
var r:lista;
begin
r:=a[k]; b[k]:=1; write(fo,k,' ');
while r<>nil do begin
if b[r^.info]=0 then dfs(r^.info);
r:=r^.next;
end;
end;
begin
assign(fi,'sortaret.in'); reset(fi); readln(fi,n,n2);
assign(fo,'sortaret.out'); rewrite(fo);
for i:=1 to n do begin
new(v[i]); new(a[i]);
v[i]^.info:=i;
a[i]:=v[i];
b[i]:=0;
end;
for i:=1 to n2 do begin
new(q);
readln(fi,x,y);
q^.info:=y;
q^.next:=nil;
d[x]:=1;
if v[x]=nil then v[x]:=q
else begin
v[x]^.next:=q;
v[x]:=q;
end;
end;
for i:=1 to n do if (b[i]=0) and (d[i]=1) then dfs(i);
close(fi); close(fo);
end.