このチャレンジでは、アボカドの分野があり、それを可能な限り迅速かつ完全に絞りたいと思っています。すべてのアボカドを完璧に搾り出す方法を見つけるのに役立つプログラムまたは関数を作成できますか?
入力として、アボカドを3から6の間の整数であるmx m正方形グリッドとして取得しますm。各正方形には1つのアボカドのみが含まれています。アボカドにはいくつかのジューシーな段階があります:
ステージ1:アボカドはまったく搾り出されていません。
ステージ2:アボカドは部分的に搾り出されています。
ステージ3:アボカドは完全に搾り出されています。
ステージ4:アボカドは過剰な水分摂取により爆発しました。
ジューシングツールを使用すると、そのジューシングツールの効果範囲内のアボカドが次の段階に移動します。爆発するアボカドには大きな力があり、アボカドのフィールド全体を破壊するため、アボカドが爆発しないようにしてください!
アボカドのグリッドの例を次に示します。これらの例では、0,0左下隅の座標2,2と右上隅の座標を使用しましたが、言語に合わせて座標系を調整できます。
112
221
231
目標は、すべてのアボカドを完全に搾り出すことです(つまり、ステージ3)。これを実現するには、3つの異なるジューシングツールを所有しています。各ジューシングツールの効果範囲は異なりますが、影響を受けるアボカドのジューシーさはすべて1増加します。
自由に使えるツールはすべてここにあります。ジューサーを使用するには、ツールの最初の文字を指定してから、ジュースにしたい座標を指定します。たとえば、square 5,2でスライサーを使用するには、を出力しますS 5,2。
スライサー:ターゲット座標と両側のアボカドを絞り出します。
112 112 112
221 --> XXX --> 332
231 231 231
おろし金:ターゲット座標とアボカドを上下に絞ります。
112 1X2 122
221 --> 2X1 --> 231 --> kaboom!
231 2X1 241
ロケットランチャー:ターゲット座標と隣接するすべてのアボカドを絞り出します。
112 1X2 122
221 --> XXX --> 332
221 2X1 231
サンプルの入力と出力
323
212
323
G 1,1
S 1,1
3312
3121
1213
2133
R 0,0
R 1,1
R 2,2
R 3,3
22322
22222
22222
33233
33333
G 0,3
G 1,3
G 2,2
G 3,3
G 4,3
222332
333221
222332
333222
222333
333222
S 1,5
S 1,3
S 1,1
S 4,5
S 4,3
S 4,1
G 5,4