Topological Sort

Score: 186.43 (fail)

#!perl -lan057
@N=grep{!$N{$_}++}@F;%X=@F;END{while(@N){exit 1if%X&&$i++>@N;$n=shift@N;delete$X{$n}if$X{$n}eq$n;%Y=reverse%X;if(!$Y{$n}){print$n;delete$X{$n};$i=0;%Y=reverse%X}else{push@N,$n}}}

Score: 200.43 (fail)

#!perl -lan057
@N=grep{!$N{$_}++}@F;%X=@F;%Y=reverse@F;END{while(%X){exit 1if%X&&$i++>@N;$n=shift@N;delete$X{$n}if$X{$n}eq$n;if(!$Y{$n}){print$n;delete$X{$n};$i=0;%Y=reverse%X}else{push@N,$n}}map{print$_}@N}

Score: 208.49 (pass)

#!perl -lan012 
($x,$y)=@F;$X{$x}{$y}=$Y{$y}{$x}=1if$x ne$y;map{$N{$_}++}@F;END{exit map{map{if(!$Y{$_}){print;for$y(keys%Y){delete$Y{$y}{$_};delete$Y{$y}if!%{$Y{$y}}}delete$X{$_};delete$N{$_};exit if!%N}}keys%N}%N}

Score: 210.49 (pass)

#!perl -lan012
($x,$y)=@F;$X{$x}{$y}=$Y{$y}{$x}=1if$x ne$y;map{$N{$_}++}@F;END{exit map{map{if(!$Y{$_}){print;for$y(keys%Y){delete$Y{$y}{$_};delete$Y{$y}if!%{$Y{$y}}}delete$X{$_};delete$N{$_};exit if!%N}}keys%N}0..%N}

Score: 212.49 (pass)

#!perl -lan012
($x,$y)=@F;$X{$x}{$y}=$Y{$y}{$x}=1if$x ne$y;map{$N{$_}++}@F;END{map{map{if(!$Y{$_}){print;for$y(keys%Y){delete$Y{$y}{$_};delete$Y{$y}if!%{$Y{$y}}}delete$X{$_};delete$N{$_};exit if!%N}}keys%N}0..%N;exit 1}

Score: 214.52 (fail)

#!perl -lan012
($.,$?)=@F;$X{$.}{$?}=$Y{$?}{$.}=1if$.ne$?;map{$N{$_}++}@F;END{for(0..%N){for(keys%N){if(!$Y{$_}){print;for$?(keys%Y){delete$Y{$?}{$_};delete$Y{$?}if!%{$Y{$?}}}delete$X{$_};delete$N{$_};exit if!%N}}}exit 1}

Score: 215.50 (pass)

#!perl -lan012
($x,$y)=@F;$X{$x}{$y}=$Y{$y}{$x}=1if$x ne$y;map{$N{$_}++}@F;END{for(0..%N){for(keys%N){if(!$Y{$_}){print;for$y(keys%Y){delete$Y{$y}{$_};delete$Y{$y}if!%{$Y{$y}}}delete$X{$_};delete$N{$_};exit if!%N}}}exit 1}