Neste desafio, você precisa lidar com uma matriz que se move da esquerda para a direita uma determinada quantidade de vezes, deslocando seus itens como em uma esteira transportadora. No final do último array dentro da matriz, há um túnel de teletransporte. O túnel de teletransporte faz com que os elementos empurrados para fora pelos deslocamentos apareçam no início da matriz, na mesma ordem em que estavam antes do deslocamento. Veja o exemplo abaixo:
# Before the movement.
mtx = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
n = 2
# After the movement (2 shifts to the right).
mtx = [[8, 9, 1], [2, 3, 4], [5, 6, 7]]
# Shifting 2 times to the right, "8" and "9" are pushed through the warp tunnel.
# The warped elements appear at the start.Dada uma matriz mtx e um inteiro n, implemente uma função que retorne a mesma matriz com seus elementos deslocados n vezes.
warp_tunnel([[1, 2, 3], [4, 5, 6], [7, 8, 9]], 2) ➞ [[8, 9, 1], [2, 3, 4], [5, 6, 7]]
warp_tunnel([[1, 2, 3], [4, 5, 6], [7, 8, 9]], 8) ➞ [[2, 3, 4], [5, 6, 7], [8, 9, 1]]
warp_tunnel([[1, 2, 3], [4, 5, 6], [7, 8, 9]], 9) ➞ [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
warp_tunnel([[1, 2, 3], [4, 5, 6], [7, 8, 9]], 18) ➞ [[1, 2, 3], [4, 5, 6], [7, 8, 9]]n fornecido pode ser maior que a quantidade total de elementos dentro da matriz (consulte o exemplo #4). Cada vez que você completar um ciclo de deslocamento (de modo que cada elemento volte à sua posição original, como no exemplo #3), deverá começar novamente.