Floresta Mágica CFOBI PJ

por

Escrito por João Pedro Castro

Conhecimentos Prévios Necessários:

Para processar cada comando precisamos saber somente dois coisas a cada momento: as coordenadas atuais (chame de $$(x, y)$$) e a direção atual $$d$$, que vamos atribuir como um inteiro $$0$$ até $$3$$, sendo $$0$$ norte, $$1$$ leste, $$2$$ sul e $$3$$ oeste (começando do norte na ordem horária). Agora fica fácil, se for um comando de girar fale que $$d := (d + \frac{p}{90})~mod~4$$; explicando, $$\frac{p}{90}$$ é a quantidade de posições horárias que você vai pular, e colocamos $$mod~4$$ para o problema de você estar na posição $$2$$ e pular $$3$$, e acabar na posição $$5$$ (que não existe) ao invés da $$1$$ (ou seja, é cíclico). Agora, caso seja um de mover pontos, é só pensar um pouco para ver onde $$N$$ move em cada uma das $$4$$ direções (só colocar 4 ifs) e atualizar $$(x, y)$$.

Clique aqui para ver o código