\documentclass{maratona} \begin{document} \begin{ProblemaAutor}{}{Movimento do Cavalo}{1}{256}{Spoj NAKANJ - Minimum Knight moves} Anjali e Nakul são grandes amigos, mas recentemente tiveram uma briga enquanto jogavam xadrez. Nakul, que é excelente em programação, escreveu um programa para descobrir o número mínimo de movimentos que um cavalo precisa para ir de uma casa a outra no tabuleiro ($8 \times 8$). Agora ele quer saber se Anjali consegue fazer o mesmo. Um cavalo se move em formato de “L”: dois quadrados em uma direção (horizontal ou vertical) e depois um quadrado em direção perpendicular. Um movimento é válido apenas se o cavalo permanecer dentro dos limites do tabuleiro. Sua tarefa é ajudar Anjali a determinar o número mínimo de movimentos necessários para o cavalo ir de uma posição inicial até uma posição de destino. \begin{figure}[h] \centering \includegraphics[width=0.4\textwidth]{knight-moves.png} \caption{Movimentos possíveis de um cavalo no tabuleiro.} \end{figure} \Entrada A primeira linha contém um inteiro $T$ ($1 \leq T \leq 100$), o número de casos de teste. Cada uma das próximas $T$ linhas contém duas strings — \texttt{inicio} e \texttt{destino} — separadas por um espaço. Cada string representa uma casa válida do tabuleiro: o primeiro caractere é uma letra de `a' a `h', e o segundo é um dígito de `1' a `8'. \Saida Para cada caso de teste, imprima o número mínimo de movimentos necessários para o cavalo alcançar o destino a partir da posição inicial. \ExemploEntrada \begin{Exemplo} \texttt{3} & \texttt{6}\\ \texttt{a1~h8} & \texttt{1}\\ \texttt{a1~c2} & \texttt{4}\\ \texttt{h8~c3} & \\ \rowcolor{gray!20}\texttt{1} & \texttt{0}\\ \rowcolor{gray!20}\texttt{a1~a1} & \\ \end{Exemplo} \end{ProblemaAutor} \end{document}