Ctrl K

Конь против пешек

Сложная
На доске 50 × 50 стоят конь и несколько пешек. Конь находится в клетке (knight_row, knight_col), пешки — в клетках из списка pawns, где pawns[i] = [строка, столбец]. Аня и Боря ходят по очереди, начинает Аня. В свой ход игрок выбирает любую оставшуюся пешку, и конь забирает её за наименьшее возможное число ходов. По пути конь может проходить через клетки других пешек, но забирает только выбранную. Выбирать самую близкую пешку не обязательно. Игра идёт, пока на доске остаются пешки. Аня хочет, чтобы суммарное число ходов коня за всю игру было как можно больше, Боря — как можно меньше. Оба играют наилучшим образом. Верните итоговое число ходов коня. Конь ходит буквой «Г»: на две клетки по вертикали или горизонтали и на одну в перпендикулярном направлении.
Пример 1
knight_row=2, knight_col=2, pawns=[[3, 4]] → 1

Пешка одна, и конь берёт её за один ход: (2, 2) → (3, 4).

Пример 2
knight_row=0, knight_col=0, pawns=[[2, 1], [0, 1]] → 5

Если Аня выберет пешку (0, 1), конь дойдёт до неё за 3 хода, а затем Боря возьмёт (2, 1) ещё за 2 хода — всего 5. Если Аня начнёт с (2, 1) (1 ход), Боре останется (0, 1) за 2 хода — всего 3. Аня выбирает первый вариант.

Пример 3
knight_row=10, knight_col=10, pawns=[[12, 11], [14, 12], [9, 8]] → 5
Ограничения
  • 0 ≤ knight_row, knight_col ≤ 49
  • 1 ≤ len(pawns) ≤ 15
  • 0 ≤ pawns[i][0], pawns[i][1] ≤ 49
  • Все пешки стоят в разных клетках, и ни одна не стоит на клетке коня
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиДве группы с одинаковым средним СложнаяДуэль на стирание с XOR СложнаяЦепочки с квадратными суммами СложнаяПроизведение различных простых СложнаяПодтянуть числа под делители Сложная
загружаем Python…
Вход
knight_row=2, knight_col=2, pawns=[[3, 4]]
Ожидается
1

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 92 теста на сервере, включая скрытые.