Cod sursa(job #171369)

Utilizator StigmaSimina Pitur Stigma Data 4 aprilie 2008 10:12:10
Problema Sortare topologica Scor 10
Compilator fpc Status done
Runda Arhiva educationala Marime 0.74 kb
program toposort_2;
var q,l,g:array[1..500] of integer;
a:array[1..100,1..100] of integer;
kl,n,i,j,k,m:longint;
f,t:text;

procedure rezolva;
var li,ls:integer;
begin
li:=1;ls:=0;
for i:=1 to n do
if g[i]=0 then
begin
ls:=ls+1;
q[ls]:=i;
end;
kl:=0;
while ls>=li do
begin
kl:=kl+1;
l[kl]:=q[li];
q[li]:=0;
li:=li+1;
for i:=1 to n do
if a[l[kl],i]>0 then
begin
a[l[kl],i]:=a[l[kl],i]-1;
g[i]:=g[i]-1;
if g[i]=0 then
begin
ls:=ls+1;
q[ls]:=i;
end;
end;
end;
end;



begin
writeln;
assign(f,'sortaret.in');reset(f);
assign(t,'sortaret.out');rewrite(t);
readln(f,n,m);
for k:=1 to m do
begin
readln(f,i,j);
a[i,j]:=a[i,j]+1;
g[j]:=g[j]+1;
end;
rezolva;
for i:=1 to kl do
write(t,l[i],' ');
close(t);
end.