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 0 in the initial matrix to 6.
6 2
3 4
After updating, we need to rotate the matrix by sum of all rotation angles applied till now
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.
So the output should be
3
1
4
6
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
def main():
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)
if __name__ == '__main__':
main()
Comments
Leave a comment