Topological Sort

Score: 76.52 (pass)

#!perl -ln0
$*=qr/\Q$&/,s/^($*) $*
//,/ $*
/||s/^($*)\s//g&print$1while/\S+/g;a/!$_

Score: 77.52 (pass)

#!perl -ln0
$*=qr/\Q$&/,s/^($*) $*
//,/ $*$/||s/^($*)\s//g&print$1while/^\S+/g;a/!$_

Score: 77.52 (pass)

improved tie-breaker

#!perl -ln0
$*=qr/\Q$&/,s/^($*) $*
//,/ $*
/||s/^($*)\s//g&print$1while/^\S+/g;a/!$_

Score: 79.51 (pass)

$* is fun.

#!perl -ln0
$*=qr/\Q$&/,s/^($*) $*
//,/ $*$/||s/^($*)\s//g&print$1while/^\S+/g;$_&&die

Score: 83.47 (pass)

#!perl -ln0
$r=qr/\Q$&/,s/^($r) $r
//m,/ $r$/m||s/^($r)\s//gm&print$1while/^\S+/gm;$_&&die

Score: 85.48 (pass)

#!perl -ln0
$r=qr/\Q$&/,s/^($r) \1$/$1/m,/ $r$/m||s/^($r)\s//gm&print$1while/^\S+/gm;$_&&die

Score: 89.50 (pass)

#!perl -ln0
$0=$&,s/^(\Q$0\E) \1$/$1/m,/ \Q$0\E$/m||s/^\Q$0\E\s//gm&print$0while/^\S+/gm;$_&&die

Score: 94.48 (pass)

I should have found this earlier.

#!perl -ln0
($y=$&)=~s/\W/\\$&/g,s/^($y) $y$/$1/m,/ $y$/m||s/^($y)\s//gm&print$1while/^\S+/gm;$_&&die

Score: 95.48 (pass)

#!perl -ln0
($y=$&)=~s/\W/\\$&/g,s/^($y) $y$/$1/m,!/ $y$/m&&s/^($y)\s//gm&print$1while/^\S+/gm;$_&&die

Score: 96.48 (pass)

do we need /g in the second RE?

#!perl -ln0
($y=$&)=~s/\W/\\$&/g,s/^($y) $y$/$1/gm,!/ $y$/m&&s/^($y)\s//gm&print$1while/^\S+/gm;$_&&die

Score: 96.52 (pass)

and again.

#!perl -ln0
($y=$&)=~s/\W/\\$&/g,!/^(.+) (?!\1$)$y$/m&&s/^($y)\s($y
)?//gm&print$1while/^\S+/gm;$_&&die

Score: 97.53 (pass)

finally below 100.

#!perl -ln0
($y=$&)=~s/\W/\\$&/g,!/^(.+) (?!\1$)$y$/m&&s/^($y)\s($y
)?//gm&&print$1while/^\S+/gm;$_&&die

Score: 101.53 (pass)

It's closer...

#!perl -ln0
($y=$&)=~s/\W/\\$&/g,/$y/&!/^(.+) (?!\1$)$y$/m&&print($&)+s/^$y\s($y
)?//gmwhile/^\S+/gm;$_&&die

Score: 102.53 (pass)

can I pass 100?

#!perl -ln0
($y=$&)=~s/\W/\\$&/g,/$y/&!/^(\S+) (?!\1$)$y$/m&&print($&)&s/^$y\s($y
)?//gmwhile/^\S+/gm;$_&&die

Score: 106.50 (pass)

Hope this works.

#!perl -ln0
while(/^\S+/gm){($y=$&)=~s/\W/\\$&/g;s/^$y\s($y\s)?//gm
if/$y/&!/^(\S+) (?!\1$)$y$/m&&print$&}$_&&die

Score: 126.51 (fail)

It passed the test program (1.0)

#!perl -ln0
while (/^\S+/gm) {
($y = $&) =~ s/\./[.]/g;
s/^$y\s//gm,s/^$y\s//gm if /$y/ & !/^(\S+) (?!\1$)$y$/m && print$&;
}
$_&&die

Score: 158.64 (fail)

#!perl -ln0                                                                     $0=$&,s/^(\Q$0\E) \1$/$1/m,/ \Q$0\E$/m||s/^\Q$0\E\s//gm&print$0while/^\S+/gm;$_&&die

Score: 158.64 (fail)

#!perl -ln0                                                                     $0=$&,s/^(\Q$0\E) \1$/$1/m,/ \Q$0\E$/m||s/^\Q$0\E\s//gm&print$0while/^\S+/gm;$_&&die

Score: 162.46 (fail)

#!perl -ln0
$n=map$a{$_}++,split;while($n--){for$x(keys%a){($y=$x)=~s/\./[.]/g;s/^$y .+
//gm,delete$a{$x}if/$y/&&!/^(\S+) (?!\1$)$y$/m&&print$x}}print
for keys%a;$_&&die

Score: 165.45 (fail)

#!perl -ln0
$n=map$a{$_}++,split;s/(\S+) \1
//gm;while($n--){for$x(keys%a){($y=$x)=~s/\./[.]/g;s/^$y .+
//gm,delete$a{$x}if/$y/&&!/ $y$/m&&print$x}}print for keys%a;$_&&die