問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
1 つの特殊なサイコロが与えられます。
サイコロは 1 から 6 までの数字が書かれた 6 面サイコロですが、面に書かれた数字の配置が通常と異なりゲームを始める際に数字の配置が決まります。
初期状態では、サイコロにの各面に ID としてアルファベット T, B, U, D, L, R が以下の図で表すように与えられています。
サイコロの各面 T, B, U, D, L, R に対応する数字がそれぞれ与えられます。
画像のように、T の面を上にし U の面を手前に向けてサイコロを置きます。
このとき、数字 1, 2, 3, 4, 5, 6 が書かれた面を上にするにはそれぞれ何回サイコロを回転させる必要がありますか?
それぞれの回転回数の最小値を求めてください。
ここで「回転」の操作は「奥」「手前」「右」「左」のいずれかの方向にサイコロを 90°回転させることを指します。必要であれば 2 回以上の回転も行うことができます。
入力は以下のフォーマットで与えられます。
T B U D L R
・ 1 行目には問題文にそってサイコロの各面の ID である T, B, U, D, L, R に対応する数字がこの順に半角スペース区切りで与えられます。
・ 入力は合計で 1 行となり、末尾に改行が1つ入ります。
期待する出力は 6 行からなります。
i (1 ≦ i ≦ 6) 行目には、i が書かれた面を上にするために必要な回転回数の最小値を出力してください。
最後は改行し、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
・ 入力される値はすべて整数
・ 1 ≦ T, B, U, D, L, R ≦ 6
・ T, B, U, D, L, R はすべて互いに異なる
5 2 3 6 4 1
1
2
1
1
0
1
4 1 3 6 2 5
2
1
1
0
1
1