第5回HOJコンテストA問題想定解

http://karu.ninja-web.net/hoj/contest5.html
今回は作問者として参加。問題傾向の偏りっぷりがやばい。すみませんでした。
全問題30B制限にしたけど想定解30Bの問題が2つあるので実は緩いわけではない。


1290[Contest 5A - 1 Clock] 30B
とりあえず中を回収してから回転でしょう。

a(X):XXX
a(srssl)a(a(s))a(a(rほげほげ))

あとは1/4周するコードを書けば終了。

a(X):XXX
b(X):sXrsl
a(srssl)a(a(s))a(a(rb(b()b(b()b()b()b())b())))

しかし2B足りないので無理やり縮めます。

a(X):XXX
b(X):sXrsl
a(b(rsl))a(a(s))a(a(rb(b()b(a(b())b())b())))

1291[Contest 5A - 2 Heart] 17B
長さを測ればわかるはず。

a(X):rXXXXa(rrXrsls)
a(l)

1292[Contest 5A - 3 Kite] 23B
頑張って回収するだけ。

a:srsl
b(X,Y):XXYYXXl
b(b(,b(b(a,),b(,a))r),)

1293[Contest 5A - 4 Watashidesu] 22B
分かれば簡単。

a(X):XXXX
b(X):a(XXa(XrX)XXr)b(sX)
b(r)

中心に戻らなければ縮みます。

a(X):XX
b(X):a(a(a(Xrr)X))rslb(sXs)
b(r)

1294[Contest 5A - 5 Hole] 22B
フィボナッチ数列だと分かれば簡単。4回繰り返す必要も無いですね。

a(X,Y,Z):Xra(XrYrrYrsss,YZ,Y)
a(,s,)

1295[Contest 5A - 6 Shuriken] 26B
1/4部分を見極められれば勝ち。多分再帰より数値のほうが短いでしょう。

a(X,Y,Z):srXXla(sYs,X,Z-1)
b:a(rr,rr,12)rb
b

1296[Contest 5A - 7 Circle] 29B
rssrsllXsrsslを3回に分けて育てましょう。

a(X,Y,Z):XXXXsa(rslYrsl,Zsrsl,rsrsllX)
a(r,r,r)

普通に縮めます。

a(X,Y,Z):XXXXsa(bYb,Zsb,rsblX)
b:rsl
a(r,r,r)

1297[Contest 5A - 8 Circles] 30B
パーツ選択が鍵?

a:sss
b:sr
c:bbbbr
araccararaa

を1パーツとして塗りつぶす。

a:sss
b(X):XX
b(b(b(b(b(arab(b(b(sr))r)b(ar)aa)r)l)r))

1298[Contest 5A - 9 Plus] 21B
縁を観察すればパーツが分かる…はず。25339stepもかかる糞問でした。

a(X,Y):XXXXa(XXXXXlYrY,sY)
a(r,)

一応23Bなら11031stepで書けます。

a(X,Y,Z):XXXXa(YXXXX,YlZrZ,sZ)
a(,r,)