Yikes, changed my algorithm and only saved 7 strokes :-/
#!perl -alp
@U{($a,$b)=@F}=0;$R{$b}{$a}=1if$a
ne$b}@U=keys%U;while(@U){@U=sort{%{$R{$a}}<=>%{$R{$b}}}@U;%{$R{$a=shift@U}}&¨delete$R{$_}{$a}for@U;$_=$a
|
#!perl -alp
@U{@F}=0;push@{$L{$F[0]}},pop@F}sub v{$U{my$a=$_}=2;$_ eq$a||1<$U{$_}&&die||$U{$_}||&v for@{$L{$a}};--$U{$a};@O=($a,@O)}$U{$_}||v for keys%U;for(@O){
|