Pagini recente » Cod sursa (job #1271197) | Cod sursa (job #2945688) | Cod sursa (job #387427) | Cod sursa (job #2754624) | Cod sursa (job #147839)
Cod sursa(job #147839)
type point=^nod;
nod=record
nr:longint;
ua:point;
end;
var f1,f2:text;
i,n,m,t,f:longint;
np,s:array[0..50010] of shortint;
l:array[0..50010] of point;
lf:point;
procedure dfs(nod:longint);
var p:point;
begin
s[nod]:=1;
p:=l[nod];
while p<>nil do
begin
if s[p^.nr]=0 then
dfs(p^.nr);
p:=p^.ua;
end;
new(p);
p^.nr:=nod;
p^.ua:=lf;
lf:=p;
end;
procedure clad(t,f:longint);
var p:point;
begin
new(p);
p^.nr:=f;
p^.ua:=l[t];
l[t]:=p;
end;
begin
assign(f1,'sortaret.in');
reset(f1);
assign(f2,'sortaret.out');
rewrite(f2);
read(f1,n,m);
for i:=1 to m do
begin
read(f1,t,f);
clad(t,f);
inc(np[f]);
end;
for i:=1 to n do
if s[i]=0 then
dfs(i);
while lf<>nil do
begin
write(f2,lf^.nr,' ');
lf:=lf^.ua;
end;
close(f1);
close(f2);
end.
type point=^nod;
nod=record
nr:longint;
ua:point;
end;
var f1,f2:text;
i,n,m,t,f:longint;
np,s:array[0..50010] of shortint;
l:array[0..50010] of point;
lf:point;
procedure dfs(nod:longint);
var p:point;
begin
s[nod]:=1;
p:=l[nod];
while p<>nil do
begin
if s[p^.nr]=0 then
dfs(p^.nr);
p:=p^.ua;
end;
new(p);
p^.nr:=nod;
p^.ua:=lf;
lf:=p;
end;
procedure clad(t,f:longint);
var p:point;
begin
new(p);
p^.nr:=f;
p^.ua:=l[t];
l[t]:=p;
end;
begin
assign(f1,'sortaret.in');
reset(f1);
assign(f2,'sortaret.out');
rewrite(f2);
read(f1,n,m);
for i:=1 to m do
begin
read(f1,t,f);
clad(t,f);
inc(np[f]);
end;
for i:=1 to n do
if s[i]=0 then
dfs(i);
while lf<>nil do
begin
write(f2,lf^.nr,' ');
lf:=lf^.ua;
end;
close(f1);
close(f2);
end.