第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,)