Pagini recente » Cod sursa (job #3165061) | Cod sursa (job #2884105) | Cod sursa (job #2029875) | Cod sursa (job #2562304) | Cod sursa (job #1195319)
program sortaretopologica;
type vector=array [1..50000] of integer;
var d,a,b,i,n,m,j:longint;
f,g:text;
v:vector;
function pozi(x,d:integer):integer;
var i:integer;
begin
pozi:=0;
for i:=1 to d do if x=v[i] then pozi:=i
end;
begin
assign (f,'sortaret.in');
reset(f);
assign (g,'sortaret.out');
rewrite(g);
readln (f,n,m);
d:=0;
for i:=1 to m do begin
readln(f,a,b);
if (pozi(a,d)>0) and (pozi(b,d)=0) then begin
d:=d+1;
v[d]:=b;
end
else if (pozi(a,d)=0) and (pozi(b,d)>0) then begin
d:=d+1;
for j:=d downto pozi(b,d)+1 do v[j]:=v[j-1];
v[pozi(b,d)]:=a;
end
else if (pozi(a,d)=0) and (pozi(b,d)=0) then begin
d:=d+2;
v[d-1]:=a;
v[d]:=b;
end
else if pozi(a,d)>pozi(b,d) then begin
{aux:=v[pozi(a,d)];
v[pozi(a,d)]:=v[pozi(b,d)];
v[pozi(b,d)]:=aux;}
v[pozi(b,d)]:=a;
v[pozi(a,d)]:=b;
end;
end;
for i:=1 to n do if pozi(i,d)=0 then begin
d:=d+1;
v[d]:=i;
end;
for i:=1 to d do write (g,v[i],' ');
readln;
close(f);
close(g);
end.