Вы оказываетесь на шахматной доске, как и каждый. Вы можете видеть выход, но он ужасно далеко, и вы бы предпочли не идти весь путь. К счастью, некоторые местные жители предложили вам прокатиться. Рыцарь, Ладья, Епископ и Король готовы доставить вас к месту назначения, но, видя, что это шахматная доска, они должны соблюдать правила шахмат на пути к месту назначения. Вы хотели бы как можно скорее уйти отсюда, чье предложение вы принимаете?
задача
Учитывая шахматную доску произвольной формы и размера и две точки на шахматной доске, выведите шахматную фигуру, которая может перемещаться между двумя точками за минимальное количество ходов. Доски не обязательно будут непрерывными, что означает, что между разделами доски могут быть промежутки. Каждая из четырех фигур (Король, Ладья, Рыцарь и Епископ) может двигаться в соответствии со своими стандартными правилами в шахматах. Части ферзя и пешки были намеренно исключены из этого испытания.
I / O
Вы можете принимать данные в любом разумном формате, а также в любом формате, который вы выберете. Ваш вход и выход должны быть самосогласованными. Если несколько кусков могут добраться до места назначения за одно и то же количество ходов, вы должны вывести все куски, которые могут добраться за минимальное количество времени. Если ни один из четырех фрагментов не может сделать это до конца, вы можете вывести что-либо, если оно отличается от всех других возможных выходов. Это может включать в себя ничего не выводить или выдавать ошибку.
Тестовые случаи
Квадрат обозначает начальную точку, а кружок обозначает конечную точку.
епископ
рыцарь
король
ладья
Король рыцарь
Никто