「のんびり座りたい」をsedでやってみました。他の実装は 第7回オフラインリアルタイムどう書くの問題 から辿れます。
「異星の電光掲示板」をsedで(横へな15) に引き続きsedで書いてみました。(過去問は逆順に辿りながらやらせてもらっています。)
selectchair.sed
# 数→椅子
s/1\([0-9]\)/55\1/
s/2\([0-9]\)/5555\1/
s/3\([0-9]\)/555555\1/
s/9/54/
s/8/53/
s/7/52/
s/6/51/
s/5/-----/g
s/4/----/
s/3/---/
s/2/--/
s/1/-/
s/0//
:LOOP
# どちら側の隣にも人が座っていない席に座る
s/^--\(.*\):\([A-Z]\)\(.*\)$/\2-\1:\3/
s/---\(.*\):\([A-Z]\)\(.*\)$/-\2-\1:\3/
t LOOP
s/--:\([A-Z]\)\(.*\)$/-\1:\2/
t LOOP
# 片側にしか人が座っていない席に座る
s/^-\(.*\):\([A-Z]\)\(.*\)$/\2\1:\3/
s/--\(.*\):\([A-Z]\)\(.*\)$/\2-\1:\3/
t LOOP
s/-:\([A-Z]\)\(.*\)$/\1:\2/
t LOOP
# 両側に人が座っている席に座る
s/-\(.*\):\([A-Z]\)\(.*\)$/\2\1:\3/
t LOOP
# 立ち去る
s/\(.*\)A\(.*\):a\(.*\)$/\1-\2:\3/
s/\(.*\)B\(.*\):b\(.*\)$/\1-\2:\3/
s/\(.*\)C\(.*\):c\(.*\)$/\1-\2:\3/
s/\(.*\)D\(.*\):d\(.*\)$/\1-\2:\3/
s/\(.*\)E\(.*\):e\(.*\)$/\1-\2:\3/
s/\(.*\)F\(.*\):f\(.*\)$/\1-\2:\3/
s/\(.*\)G\(.*\):g\(.*\)$/\1-\2:\3/
s/\(.*\)H\(.*\):h\(.*\)$/\1-\2:\3/
s/\(.*\)I\(.*\):i\(.*\)$/\1-\2:\3/
s/\(.*\)J\(.*\):j\(.*\)$/\1-\2:\3/
s/\(.*\)K\(.*\):k\(.*\)$/\1-\2:\3/
s/\(.*\)L\(.*\):l\(.*\)$/\1-\2:\3/
s/\(.*\)M\(.*\):m\(.*\)$/\1-\2:\3/
s/\(.*\)N\(.*\):n\(.*\)$/\1-\2:\3/
s/\(.*\)O\(.*\):o\(.*\)$/\1-\2:\3/
s/\(.*\)P\(.*\):p\(.*\)$/\1-\2:\3/
s/\(.*\)Q\(.*\):q\(.*\)$/\1-\2:\3/
s/\(.*\)R\(.*\):r\(.*\)$/\1-\2:\3/
s/\(.*\)S\(.*\):s\(.*\)$/\1-\2:\3/
s/\(.*\)T\(.*\):t\(.*\)$/\1-\2:\3/
s/\(.*\)U\(.*\):u\(.*\)$/\1-\2:\3/
s/\(.*\)V\(.*\):v\(.*\)$/\1-\2:\3/
s/\(.*\)W\(.*\):w\(.*\)$/\1-\2:\3/
s/\(.*\)X\(.*\):x\(.*\)$/\1-\2:\3/
s/\(.*\)Y\(.*\):y\(.*\)$/\1-\2:\3/
s/\(.*\)Z\(.*\):z\(.*\)$/\1-\2:\3/
t LOOP
# ごみ掃除
s/://