Escreva uma função que gire uma matriz inteira por um determinado número k. Os elementos k do final devem se mover para o início da matriz e todos os outros elementos devem se mover para a direita para criar espaço.
A rotação deve ser feita no local.
O algoritmo não deve ser executado em mais de O (n), onde n é o tamanho da matriz.
Também é necessário usar uma memória constante para executar a operação.
Por exemplo,
se a matriz for inicializada com elementos arr = {1, 2, 3, 4, 5, 6, 7, 8, 9}
rotate (arr, 3) fará com que os elementos sejam {7, 8, 9, 1, 2, 3, 4, 5, 6}
rotate (arr, 6) resultará em {4, 5, 6, 7, 8, 9, 1, 2, 3}