Answer to Question #211426 in Python for Ravichandrasekhar

Question #211426

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.

sample input

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

Same output

5
8
8






1
Expert's answer
2021-06-29T00:10:49-0400
from copy import deepcopy


def rotate90_clockwise(mat):
    return [list(reversed(col)) for col in zip(*mat)]


def rotate(mat, _angle):
    _angle = _angle % 360 // 90
    for _ in range(_angle):
        mat = rotate90_clockwise(mat)
    return mat


def update(mat, rot_list, _args):
    i, j, value = map(int, _args)
    mat[i][j] = str(value)
    mat = rotate(mat, sum(rot_list))
    return mat


def query(mat, _args):
    i, j = map(int, _args)
    print(mat[i][j])


if __name__ == "__main__":
    n = int(input())
    matrix = []
    for _ in range(n):
        matrix.append(
            list(input().split())
        )
    handle = ""
    rotation_list = []
    initial_matrix = deepcopy(matrix)
    while handle != "-1":
        handle, *args = input().split()
        if handle == "R":
            angle = int(args[0])
            rotation_list.append(angle)
            matrix = rotate(matrix, angle)
        elif handle == "U":
            matrix = update(deepcopy(initial_matrix), rotation_list, args)
        elif handle == "Q":
            query(matrix, args)

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!

Leave a comment

LATEST TUTORIALS
New on Blog
APPROVED BY CLIENTS