47 lines
1.8 KiB
TeX
47 lines
1.8 KiB
TeX
\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}
|