This is of course cheating and works only on Unix. (but I thought I'd submit it anyway :-)
#!perl print$_=`tsort |
Yay! Not a single ; in sight
#!perl -p0 $n++>8*y/ //&&die while s/^((\S+) \S+ )(.*^\S+ \2 )/$3$1/sm||s/( \S+)( .*\1 )/$2/s||s/ / /||s/^(\S+ )\1/$1/m |
Yay! Not a single ; in sight
#!perl -p0 $n++>8*y/ //&&die while s/^((\S+) \S+ )(.*^\S+ \2 )/$3$1/sm||s/( \S+)( .*\1 )/$2/s||s/ / /||s/^(\S+ )\1/$1/m |
#!perl -p0 $n++>8*y///c&&die while s/^((\S+) \S+ )(.*^(?!\2 )\S+ \2 )/$3$1/sm||s/( \S+)( .*\1 )/$2/s||s/ / /||s/^((\S+ ).*^)\2/$1/m |
#!perl -p0 $n++>8*y///c&&die while s/^((\S+) \S+ )(.*^(?!\2 )\S+ \2 )/$3$1/sm||s/( \S+)( .*\1 )/$2/s||s/ / /||s/^(\S+ )(.*^)\1/$1$2/ms |
#!perl -nl
/ /;\$p{$`};$`eq$'||++$p{$'}^push@{$s{$`}},$'}{1while map{delete$p{$_};--$p{$_}for@{$s{$_}};print}grep!$p{$_},keys%p;%p&&die
|
#!perl -nl
/ /;\$p{$`};$`eq$'||++$p{$'}&&push@{$s{$`}},$'}{1while map{delete$p{$_};--$p{$_}for@{$s{$_}};print}grep!$p{$_},keys%p;%p&&die
|
#!perl -pl
sub i{($n{$_}=my$n=1+pop)>$.&¨i($n)for@{$g{$_}}}/ /;$n=\$n{$`};push@{$g{$`}},$_=$';$`eq$'||i$$n}{$_=join$\,sort{$n{$a}-$n{$b}}keys%n
|
#!perl -pl
sub i{my$n=pop;$n{$b=$_}=++$n;$n>$.?die:i($n)for@{$g{$b}}}/ /;$n=\$n{$`};push@{$g{$`}},$_=$';$`eq$'||i$$n}{$_=join$\,sort{$n{$a}-$n{$b}}keys%n
|
#!perl -pl
sub i{my$n=pop;$n{$b=$_}=++$n;$n>$.?die:i($n)for@{$g{$b}};}/ /;$n=\$n{$`};$`eq$'&&next;push@{$g{$`}},$_=$';i$$n}{$_=join$\,sort{$n{$a}-$n{$b}}keys%n
|
#!perl -pl
sub i{my($b,$n)=@_;($n{$b}=++$n)>$.&¨i($_,$n)for@{$g{$b}}}/ /;$n=$n{$`}=$n{$`};$`eq$'&&next;push@{$g{$`}},$';i($',$n)}{$_=join$\,sort{$n{$a}<=>$n{$b}}keys%n
|
Look, no -pn!
#!perl -nl
sub i{my($b,$n)=@_;($n{$b}=++$n)>$.&¨for(@{$g{$b}}){i($_,$n)}}/ /;if($`eq$'){$n{$`}=0;next}push@{$g{$`}},$';i($',$n{$`}=$n{$`});END{print join"\n",sort{$n{$a}<=>$n{$b}}keys%n}
|