# Answer in Web Application for Chandra sena reddy #167106

Matrix Rotations

You are given a square matrix A of dimensions NxN. You need to apply the below given 3 operations on the matrix A.

Rotation: It is represented as R S where S is an integer in {90, 180, 270, 360, 450, …} which denotes the number of degrees to rotate. You need to rotate the matrix A by angle S in the clockwise direction. The angle of rotation(S) will always be in multiples of 90 degrees.

Update: It is represented as U X Y Z. In initial matrix A (as given in input), you need to update the element at row index X and column index Y with value Z.

After the update, all the previous rotation operations have to be applied to the updated initial matrix.

Querying: It is represented as Q K L. You need to print the value at row index K and column index L of the matrix A. Input

The first line contains a single integer N.

Next N lines contain N space-separated integers Aij (i – index of the row, j – index of the column).

Next lines contain various operations on the array. Each operation on each line (Beginning either with R, U or Q).

-1 will represent the end of input.Output

For each Query operation print the element present at row index K and colum index L of the matrix in its current state.Explanation

For Input:

2

1 2

3 4

R 90

Q 0 0

Q 0 1

R 90

Q 0 0

U 0 0 6

Q 1 1

-1

Initial Matrix

1 2

3 4

For R 90, clockwise rotation by 90 degrees, the matrix will become

3 1

4 2

For Q 0 0, print the element at row index 0 and column index 0 of A, which is 3.

For Q 0 1, print the element at row index 0 and column index 1 of A, which is 1.

Again for R 90, clockwise rotation by 90 degrees, the matrix will become

4 3

2 1

For Q 0 0, print the element at row index 0 and column index 0 of A, which is 4.

For U 0 0 6, update the value at row index 0 and column index 1 in the initial matrix to 6. So the updated matrix will be,

6 2

3 4

After updating, we need to rotate the matrix by sum of all rotation angles applied till now(i.e. R 90 and R 90 => 90 + 90 => 180 degrees in clockwise direction).

After rotation the matrix will now become

4 3

2 6

Next for Q 1 1, print the element at row index 1 and column index 1 of A, which is 6.

output

3

1

4

6

Sample Input 1

2

1 2

3 4

R 90

Q 0 0

Q 0 1

R 90

Q 0 0

U 0 0 6

Q 1 1

-1

Sample Output 1

3

1

4

6

Sample Input 2

2

5 6

7 8

R 90

Q 0 1

R 270

Q 1 1

R 180

U 0 0 4

Q 0 0

-1

Sample Output 2

5

8

8

but got output:

5

8

5

Output one is success but output 2 is not success

```
def ReadMatrix():
matrix = []
for i in range(int(input())):
row = [int(j) for j in input().split()]
matrix.append(row)
return matrix
def RotateMatrix(matrix, degrees):
n = len(matrix[0])
rotations = (degrees // 90) % 4
for r in range(rotations):
temp_matrix = []
for i in range(n):
column = [row[i] for row in matrix]
column.reverse()
temp_matrix.append(column)
matrix = temp_matrix
return matrix
matrix = ReadMatrix()
rotation = 0
while True:
line = input().split()
if line[0] == "-1":
break;
elif line[0] == "R":
rotation += int(line[1])
matrix = RotateMatrix(matrix, int(line[1]))
elif line[0] == "U":
matrix[int(line[1])][int(line[2])] = int(line[3])
matrix = RotateMatrix(matrix, rotation)
elif line[0] == "Q":
print(matrix[int(line[1])][int(line[2])])
else:
print("Error: unexpected command '" + line[0] + "'")
exit(1)
```