Topological Sort

Score: 75.50 (pass)

Those brackets arount the print are killing me!

#!perl -ln0
s/^(.*) \1$/$1/mg;/ \Q$&
/||print($&),s/^\Q$&\E\s//mgwhile/\S+/g;$_&&&

Score: 76.50 (pass)

#!perl -ln0
s/^(.+) \1$/$1/gm;/ \Q$&
/||print($&),s/^\Q$&\E\s//mgwhile/\S+/g;$_&&&;

Score: 77.49 (pass)

#!perl -ln0
s/^(.+) \1$/$1/mg;/ \Q$&
/||print($&),s/^\Q$&\E\s//mgwhile/\S+/g;$_&&die

Score: 79.49 (pass)

#!perl -ln0
s/^(.+) \1$/$1/mg;/ \Q$&
/||print($&),s/^\Q$&\E\s//gmwhile/^\S+/mg;$_&&die

Score: 81.49 (pass)

Sorry for keeping you busy :)

#!perl -ln0
s/^(.*) \1$/$1/mg;
/ \Q$&
/||print($&),s/^\Q$&\E\s//gmwhile/^\S+/mg;
$_&&die

Score: 86.47 (pass)

#!perl -ln0
s/^(.*) \1$/$1/mg;
/^.* \Q$&
/ms||print($&),s/^\Q$&\E\s//gmwhile/^\S+/mg;
$_&&die

Score: 88.47 (pass)

inching closer .. and closer ..

#!perl -ln0
s/^(.*) \1$/$1/mg;
/^.* \Q$&\E
/ms||print($&),s/^\Q$&\E\s//gmwhile/^\S+/mg;
$_&&die

Score: 92.47 (pass)

Don't ask me how I did .. it just happened!

#!perl -ln0
s/^(.*) \1$/$1/mg;
while(/^\S+/mg){/^.* \Q$&\E
/ms||print$&and s/^\Q$&\E\s//gm}
$_&&die

Score: 107.61 (fail)

Sometimes I feel sooooo stupid!

#!perl -lpa
$x=~/ \Q$F[1]\E (.* )*\Q$F[0] /&¨$x=~s/ \Q$F[1] / $_ / or$x.=" $_ "}for(grep!$x{$_}++,$x=~/\S+/g){

Score: 110.61 (fail)

A little re-arrangement saved me 14 chars!

#!perl -lpa
$x=~/ \Q$F[1]\E (.* )*\Q$F[0] /&&exit$=;$x=~s/ \Q$F[1] / $_ / or$x.=" $_ "}for(grep!$x{$_}++,$x=~/\S+/g){

Score: 116.64 (fail)

#!perl -lpa
$x=~s/ $F[1] / $_ / or$x.=" $_ ";/^(\S+) \1$/||$x=~/ $F[1] (.* )*$F[0] /&&exit$=}for(grep!$x{$_}++,$x=~/\S+/g){

Score: 118.62 (fail)

#!perl -lpa
$x=~s/ \Q$F[1] / $_ / or$x.=" $_ ";$F[0]ne$F[1]&&$x=~/ $F[1] (.* )*$F[0] /&&exit$=}for(grep!$x{$_}++,$x=~/\S+/g){

Score: 124.63 (fail)

Damn special characters!

#!perl -lpa
$x=~s/ \Q$F[1] / $_ / or$x.=" $_ ";/^(\S+) \1$/||$x=~/ \Q$F[1]\E (.* )*\Q$F[0] /&&exit$=}for(grep!$x{$_}++,$x=~/\S+/g){

Score: 139.49 (pass)

Dunno how much more juice I can suck out of this ...

#!perl -ln
/ /;$`eq$'||$s{$`}{$'}++||$p{$'}++;$p{$`}+=0}while(%p){@a=grep!$p{$_},keys%p or die;map{delete$p{$_};print;$p{$_}--for keys%{$s{$_}}}@a

Score: 149.55 (pass)

not much ... but better ..

#!perl -ln
/^(.*) (.*)$/;$1eq$2||$_{$1}{$2}++||$e{$2}++;$e{$1}+=0}{@a=grep!$e{$_},keys%e or die;map{print;delete$e{$_};map$e{$_}--,keys%{$_{$_}}}@a;%e&&redo

Score: 168.52 (pass)

At least this one works. Major changes coming up ..

#!perl -lna
$F[0]eq$F[1]||$_{$F[0]}{$F[1]}++||$e{$F[1]}++;$e{$F[0]}+=0}while(@b=keys%e){if (@a=grep!$e{$_},@b){for (@a){print;delete$e{$_};$e{$_}--for keys%{$_{$_}}}}else{die}