第3回HOJコンテスト結果

http://karu.ninja-web.net/hoj/contest3.html
優勝しました!かなり難しいセットで時間が足りなかったです。


0847[Level 1 - Small Windmill] 13B
無駄に最速解答も狙ってるのでとりあえず書いた16B

a:ssssllsssssra
la

逆回転にして13B

a:sblba
b:ssssl
a

0848[Level 2 - Megane] 16B
とりあえずなぞる。

a:srslb:aaaalaaaaraaaalaaaal
bb

どう見ても2倍関数だろうということで

f(X):XX
f(f(f(f(f(srsl))l)ll)ll)

fにllも混ぜてみる。

f(X):XXll
f(f(f(f(f(srsl)ll)r)))

srslとllにも適用できて16B

f(X):XXll
f(f(f(f(f(f(sr))f())r)))

0849[Level 3 - Herbert Kart] 28B
適当になぞったあと以前紹介したツールで自動短縮。bestだったので放置しました。

c:la
b:sac
a:srs
bscrsccssbaslscba

0850[Level 4 - Four balls] 22B
似た問題があったようななかったような。一発書き。

a(X):XrX
b(X):a(a(a(a(X))r))b(a(s)lXs)
b(rr)

0851[Level 5 - Many Squares] 31B

a(X):XrX
b(X):a(a(ra(a(X))))b(sa(s)a(rs)X)
b()

Byte数に余裕があったので上のコードで取れなかったところを強引に回収して31B

a(X):XrX
b(X):a(a(a(a(s)sslsa(ss))a(a(X))))b(sa(s)a(rs)X)
b()

0852[Level 6 - Windmills] 25B

a(X,Y):lXrsrXla(sX,Y-1)s
b:a(,6)l
c:bbbblc
c

棒の作り方を変更して

a(X,Y):Xa(lsrXrsl,Y-1)s
b:a(s,6)l
c:bbbblc
c

よく見るとn倍関数と両立させられる形なので

a(X,Y,Z):Xa(lZrXrZl,Y-1,Z)Z
a(a(a(s,6,s)l,4,)l,4,)

内部にlを含めて25B。なんか他の人と結構違ってますねw

a(X,Y,Z):Xla(lZrXZ,Y-1,Z)Z
a(a(a(sr,6,s),4,),4,)

0853[Level 7 - Kousaten] 28B
とりあえず奥まで行って四角を書きながら戻る経路。

a(X,Y):Xa(X,Y-1)
b(X):a(srsl,12)rra(XXXXsrsl,12)rb(sX)
b(r)

srslと方向転換を含めて

a(X,Y):Xsrsla(X,Y-1)r
b(X):a(,14)a(XXXX,12)rb(sX)
b(r)

4+1>2+2だから

a(X,Y):XXsrsla(X,Y-1)r
b(X):a(,14)a(XX,12)rb(sX)
b(r)

0854[Level 8 - Snow Cristal]
解けませんでした。考えていたコードは

f(X,Y):XrYYYYrXr
f(,f(ssssss,f(ss,f(ss,))rf(ssss,f(s,f(s,))))rf(sss,f(ss,f(s,))))

0855[Level 9 - 59 shou tasu amari...] 31B
数式ゲー。これを解けないと勝てないので死ぬ気でやった。

a(X):sa(X-1)
b(X,Y):sb(X-Y,Y)a(X)lla(24)rsrb(58,Y+1)
rb(58,1)

割り切れる場合に歩数合わない気がしたけど割り切れなかったからセーフ?
voterのmasさんの解自明に縮むじゃないですか!

0856[Level 10 - Boss of this contest!]
解けませんでした。考えていたコードは

a(X):XXrssrrsssrrslXXa(ssrslX)
ssa(r)