Minimum Spanning Tree by emoken

H
$!d
s/.*//
x
s/\n//
h
s/^\(\w* \w* \).*$/\1/gm
:Z
s/\b\(\w\+\)\b\(.*\b\1\b\)/\2/
tZ
s/[ \n]\+/\n/g
s/^\n*\|\n*$//g
x
s/^\(\w*\) \(\w*\) \(.*\)$/\3,\1,\2/gm
s/$/ /gm
:a
/\n/!bq
s/^\(.*\)\n\(.*\)$/@\1: %\2/gm
:b
s/^[^%@:\n]*$/~&/gm
s/^\(.*\)@\(.*\): % *$/~\1\2/gm
s/^\(.*\)@: \(.*\)%\(.*\)/~\1\2\3/gm
/@/!be
x
s/$/\n=m/
x
H
s/^~.*$/~/gm
s/^.*@\(\w*\)\(,\w*\)*.*%\(\w*\)\(,\w*\)*.*$/\1 \3/gm
x
s/$/\n=n/
x
H
:1
s/^ $/=/gm
s/^ .*/</gm
s/.* $/>/gm
s/^[0-9]\|\b[0-9]//gm
t1
s/\n//g
G
s/\n.*=n//
x
s/\n=n.*//
x
:2
s/\`=\(.*\)\n\(.*\)$/\1#\2/m
s/\`<\(.*\)\n\(.*\)$/\1#</m
s/\`>\(.*\)\n\(.*\)$/\1#>/m
s/\`~\(.*\)\n.*$/\1#~/m
t2
s/#/\n/g
s/\n//
s/^/#/gm
:3
s/#\(.\)\(.*\) \(.\)\(.*\)/\1\3 #\2 \4/gm
t3
s/#//g
:4
s/00/=/g
s/0[1-9]/</g
s/[1-9]0/>/g
y/123456789/012345678/
/[0-9]/b4
s/ //gm
s/=*\(.\).*/\1/gm
s/\n//g
G
s/\n.*=m/#/
x
s/\n=m.*//
x
:m
s/^[<=]\(.*\)\n\(.*\)@\(\(\w\|,\)*\) \(.*\)%\(\(\w\|,\)*\)/\1-\2\3 @\5%\6/m
s/^>\(.*\)\n\(.*\)@\(\(\w\|,\)*\)\(.*\)%\(\(\w\|,\)*\) /\1-\2\6 @\3\5%/m
s/^~\([^\n]*\)\n~/\1-/
tm
s/-/\n/g
s/#\n//
bb
:e
s/~//g
ba
:q
s/ $//
s/ /\n/g
s/^\(.*\),\(\w*\),\(\w*\)$/\2 \3 \1/gm
x
s/^.*$/& &/gm
x
s/^/#/
s/$/\n/
x
:Y
x
/#$/bX
x
s/$/\n=e/
G
s/=e.*#\(\w* \w*\) .*/\1/
s/\(.*\)\n\(.*\)/\2\n\1\n/
:A
s/^\(\w\+\) \(.*\n\1 \(\w\+\)\b\)\([^#]\)/\3 \2#\4/
tA
:B
s/^\(\w\+\) \(\w\+\)\b\(.*\n\2 \(\w\+\)\b\)\([^#]\)/\1 \4\3#\5/
tB
/^\(\w*\) \1\b/{s//\1 F/;bD}
/^\w\+ \(\w\+\)\b.*\n\1 \1#/{s/^\(\w*\) \w*\b/\1 T/;bD}
s/^\(\w*\) \w*\b/\1 F/
:D
:E
s/^\(\w*\)\( .* \)\w*#/\1\2\1/
tE
s/\n$//
x
s/$/\n=e/
G
s/#\([^\n]*\n\)\(.*\)\n=e\n\w* \(.\).*/\3 \1#\2/
x
s/.*\n//m
bY
:X
s///
s/\n$//

Note that non-ascii characters in the above source code will be escaped (such as \x9f).

download

return top