Aventura na Floresta Mágica

Solução escrita por Malu Azevedo

Conhecimentos necessários:

O problema nos pede para determinar a posição final (X,Y)(X, Y) de uma aventureira que se perdeu na Floresta Mágica após seguir uma série de instruções descritas em um pergaminho secreto, que consistem em movimentos em linha reta ou rotações no sentido horário, partindo inicialmente do ponto (0,0)(0, 0) com a orientação voltada para o Norte.

Ideia Central

Para rastrear a posição e a orientação da aventureira, podemos manter o estado atual representado por suas coordenadas cartesianas (x,y)(x, y) e uma direção atual, utilizando um índice de 0 a 3 para representar, respectivamente, o Norte, o Leste, o Sul e o Oeste. Desse modo, a cada comando de giro (G P), onde PP vale 90, 180 ou 270 graus no sentido horário, atualizamos a orientação somando P/90P / 90 ao índice atual e aplicando o operador módulo 4. Da mesma forma, a cada comando de movimento (M N), deslocamos a aventureira em NN passos na direção atual, atualizando as coordenadas correspondentes no eixo Leste-Oeste (XX) e Norte-Sul (YY).

Abordagem completa

Lemos o número total de comandos TT. Em seguida, utilizamos um laço de repetição executado TT vezes para ler o caractere de controle KK (‘M’ ou ‘G’) e o valor numérico correspondente (NN ou PP). Aplicamos a atualização nas coordenadas ou na direção e, ao final, imprimimos as coordenadas finais XX e YY separadas por um único espaço. A complexidade é O(T)O(T).

Clique aqui para ver o código completo.