SudoKube

Ninja
0/200
Average time to solve is 45m
Contributed by

Problem statement

John, a research scholar / Professor / Puzzle solver wants your help in publishing his work on SudoKube on his online blog for his followers and students.

A SudoKube is a mixture of Rubics cube and Sudoku. A SudoKube has exactly 6 appearances of every digit from 1 to 9 across the cube, whereas Rubics cube has 6 different colours.

As John wants to publish his work in text /document form (no video) he's concerned about how he would depict the step-by-step work of rotation in 2D form. Following are the notions and concepts John follows:

1) The six faces of the cube are named FRONT, BACK, UP, DOWN, LEFT, and RIGHT respectively.

2) Just like a Rubics cube which moves in 90 and 180 degrees in both clockwise and anti-clockwise directions, so can the SudoKube.

3) Any given face of the cube is a 3x3 square matrix whose indices are denoted by (0,0) to (2,2). The diagram below illustrates the same.

4) An elementary move is denoted in the following fashion:

• If a given face is rotated 90 degrees clockwise about the axis passing from the center of the face to the center of the cube, the move is denoted by the first letter of the name of the face.

• If the rotation is anticlockwise by 90 degrees, the letter is followed by an apostrophe (').

• If the rotation is by 180 degrees, the letter is followed by a 2.

The above image displays the position of the faces

Above diagram displays the indices of the matrix on the faces

John wants to test his notations on you. He has given you the initial position of the SudoKube and he has given you a set of operations to be performed on the SudoKube basis of his notation. After applying all the operations, the final SudoKube state should be the same as what John expects. Your task is to apply the operations and print the final SudoKube state.

EXAMPLE :
``````Refer to the Sample Input 1 explanation for a better understanding of the operations.
``````
Detailed explanation ( Input/output format, Notes, Images )
Input Format :
``````The first line will contain the integer 'T', the number of test cases.

Each test case consists of twenty lines.

The first eighteen lines contain the values of the faces on SudoKube in the order given below

D D D
D D D
D D D
U U U
U U U
U U U
L L L
L L L
L L L
F F F
F F F
F F F
R R R
R R R
R R R
B B B
B B B
B B B

where
D for Down face
U for upper face
L for Left face
F for Front face
R for Right face
B for Back face.
The input contains digits from 1 to 9 instead of letters; letters are displayed for a better understanding of the faces and the expected input format

The nineteenth line will contain ‘Q’, the number of operations to be performed.

The twentieth line contains a sequence of space-delimited moves that need to be performed on the SudoKube

Example 1: D F2 R' U - to understand this please refer to the second example from the Examples section below

Example 2: L2 U B F' D2 R - let's understand how to interpret this set of operations

L2 means rotate the Left side by 180 degrees

U means rotate the Up side by 90 degrees clockwise

B means rotate the Back side by 90 degrees clockwise

F' means rotate the Front side by 90 degrees anticlockwise

D2 means rotate the Down side by 180 degrees

R means rotate the Right side by 90 degrees clockwise

In summary, the first eighteen lines denote the state of the SudoKube, the 19th line denotes the operation to be performed on that state.
``````
Output format :
``````For each test case, Print six 3x3 matrices in D, U, L, F, R, B order representing the SudoKube, corresponding to the operations, when performed in the given order.
``````
Note :
``````You don't need to print anything. It has already been taken care of. Just implement the given function. You just have to return an 18x3 matrix after performing all the operations in the given order.
``````
Constraints :
``````‘T' = 1
Values in SudoKube will be between 1 and 9
1 <= Operations to be performed (‘Q’) <= 20
Time Limit: 1 sec
``````
Sample Input 1 :
``````1
4 7 1
2 8 7
6 3 5
5 8 3
3 1 6
9 4 2
5 2 4
3 7 8
5 1 9
6 1 4
9 4 8
2 5 7
7 9 1
1 9 6
6 2 8
8 6 3
7 2 5
3 9 4
1
F
``````
Sample Output 1 :
``````6 1 7
2 8 7
6 3 5
5 8 3
3 1 6
9 8 4
5 2 4
3 7 7
5 1 1
2 9 6
5 4 1
7 8 4
9 9 1
4 9 6
2 2 8
8 6 3
7 2 5
3 9 4
``````
Explanation Of Sample Input 1 :
``````The Upper Face’s last row after rotation is copied to the first column of the Right Face
The Right Face’s first column after rotation is copied to the first row of the Down Face
The Down Face’s first row after rotation is copied to the last column of the Left Face
The Left Face’s last column after rotation is copied to the last row of the Upper Face.
Similarly, the Front Face is rotated 90 degrees clockwise.
``````

Sample Input 2 :
``````1
4 7 1
2 8 7
6 3 5
5 8 3
3 1 6
9 4 2
5 2 4
3 7 8
5 1 9
6 1 4
9 4 8
2 5 7
8 6 3
7 2 5
3 9 4
7 9 1
1 9 6
6 2 8
6
F F F2 L L’ B
``````
Sample Output 2 :
``````4 7 1
2 8 7
5 3 5
3 5 4
3 1 6
9 4 2
3 2 4
8 7 8
5 1 9
6 1 4
9 4 8
2 5 7
8 6 5
7 2 3
3 9 6
6 1 7
2 9 9
8 6 1
``````
Console