問題一覧 > 通常問題

No.585 工夫のないパズル

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / スペシャルジャッジ問題 (複数の解が存在する可能性があります)
タグ : / 解いたユーザー数 14
作問者 : nmnmnmnmnmnmnmnmnmnmnmnmnmnm
2 ProblemId : 1888 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2017-10-29 02:44:42

Note

Writerさんの希望によりTesterつけてません。

問題文

Yuki君は下図が完成図となる4行4列のパズルを手に入れました。

ABCD
EFGH
IJKL
MNOP

しかし、手に入れたパズルは完成していないパズルでした。
パズルは次のような操作ができます。

・1回の操作で選んだ$r$行目を右に$a$つだけ$Rotate$できる。
・1回の操作で選んだ$c$列目を下に$b$つだけ$Rotate$できる。

Yuki君はこのパズルを完成図と同じにする手順を100回以内の操作で用意しなければなりません。
なお、Yuki君の手に入れたパズルは100回以内の操作で完成図と同じになることが保証されている。

入力

$S_0$
$S_1$
$S_2$
$S_3$

$S_i$は$i$行目のパネルの文字の情報を持つ。($i$は0-index)
文字列$S_i$は必ず4文字からなる。
$i$行目について$j$文字目が$j$列目の文字である。($j$は0-index)
パズル内にあるアルファベットは大文字の'A'から'P'までの16文字であり重複はない。
入力の図は必ず100回の操作以内に完成することが保証される。
完成していないパズルなので、完成している状態が渡されることはない。

出力

最初に必要な回数$N$を1行で出力する。$N$は整数。$1 \le N \le 100$。
次に必要な操作の数だけ最初の操作から順に$N$行で操作を出力する。

列の操作の場合は、

R r a

のように大文字アルファベットの'R'、$r$列目を表す整数r、右へ$a$つ$Rotate$する整数aを空白をはさんで1行で出力する。
$0 \le r \le 3$。$1 \le a \le 3$。

列の操作の場合は、

C c b

のように大文字アルファベットの'C'、$c$列目を表す整数c、下へ$b$つ$Rotate$する整数bを空白をはさんで1行で出力する。
$0 \le c \le 3$。$1 \le b \le 3$。

数値の範囲は制約を満たさない場合には不正解となるので注意して欲しい。
条件さえ満たせばどのような手順で完成させても正解とする。

サンプル

サンプル1
入力
BCDA
EFGH
IJKL
MNOP
出力
1
R 0 1

0行目を右に1だけ$Rotate$すればパズルは完成する。

サンプル2
入力
ANCD
EBGH
IFKL
MJOP
出力
1
C 1 3

1列目を下に3だけ$Rotate$すればパズルは完成する。

サンプル3
入力
FHLE
MOIC
DNPB
AKGJ
出力
14
C 0 2
C 3 1
R 1 3
C 3 2
R 2 1
R 1 2
C 2 2
R 0 1
R 0 3
R 0 2
C 3 1
R 0 1
C 1 3
R 2 1

最短での正解ではありませんがとにかく100回以内に完成すれば正解です。

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。