Задача "Два коня"

На стандартной шахматной доске (8×8) живут 2 шахматных коня: Красный и Зелёный. Обычно они беззаботно скачут по просторам доски, пощипывая шахматную травку, но сегодня особенный день: у Зелёного коня день рождения. Зелёный конь решил отпраздновать это событие вместе с Красным. Но для осуществления этого прекрасного плана им нужно оказаться на одной клетке. Заметим, что Красный и Зёленый шахматные кони сильно отличаются от черного с белым: они ходят не по очереди, а одновременно, и, если оказываются на одной клетке, никто никого не съедает. Сколько ходов им потребуется, чтобы насладиться праздником?

Входные данные: Во входном файле содержатся координаты коней, записанные по стандартным шахматным правилам (т. е. двумя символами — маленькая латинская буква (от a до h) и цифра (от 1 до 8), задающие столбец и строку соответственно).

Выходные данные: Выходной файл должен содержать наименьшее необходимое количество ходов, либо −1, если кони не могут встретиться.

Примеры: Входные данные: a1 a3 ; Выходные данные: 1

Входные данные: a1 a2 ; Выходные данные: -1

Объясните, пожалуйста, как это решать


Ответы (1 шт):

Автор решения: MBo

Берёте коня, и выполняете поиск в ширину - ходите во все возможные непосещённые клетки массива. Попав в клетку, записываете количество ходов.

Делаете то же самое для второго коня.

Сравниваете все клетки. Если в какой-то клетке чётность чисел совпадает, то они могут там оказаться одновременно

→ Ссылка