Пошаговые тактические игры, такие как Advance Wars, Wargroove и Fire Emblem, состоят из квадратной сетки с изменяющимся ландшафтом с единицами разных классов движения, требующих разных затрат для каждого типа местности. Мы будем исследовать часть этой проблемы.
Вызов
Ваша задача состоит в том, чтобы определить, достижимо ли одно местоположение из другого, учитывая сетку стоимости местности и скорость движения.
Юниты могут двигаться только ортогонально, если стоимость перемещения на квадрат равна значению соответствующей ячейки на сетке (перемещение бесплатно). Например, перемещение из ячейки с ценностью 3 в ячейку с ценностью 1 стоит 1 движение, но для перехода в другой путь требуется 3. Некоторые квадраты могут быть недоступны.
пример
1 [1] 1 1 1
1 2 2 3 1
2 3 3 3 4
1 3 <1> 3 4
Перемещение от [1]
к <1>
требует минимум 7 пунктов движения, перемещаясь вправо на одну клетку, а затем вниз на три. Таким образом, если задано 6 или менее в качестве скорости движения, вы должны вывести ложный ответ.
Примеры тестовых случаев
Они будут использовать нулевые индексы (строка, столбец) с верхним левым началом, а не заключенные в квадратные скобки ячейки для начала и конца, чтобы упростить анализ. Недоступные ячейки будут представленыX
Дело 1а
1 1 2 1 X
1 2 2 1 1
2 1 1 2 1
X X X 1 2
Speed: 5
From (2, 3) to (0, 1)
Output: True
Дело 1б
1 1 2 1 X
1 2 2 1 1
2 1 1 2 1
X X X 1 2
Speed: 4
From (2, 3) to (0, 1)
Output: False
Дело 1с
1 1 2 1 X
1 2 2 1 1
2 1 1 2 1
X X X 1 2
Speed: 5
From (0, 1) to (2, 3)
Output: False
Дело 2а
3 6 1 1 X 4 1 2 1 X
5 1 2 2 1 1 1 X 1 5
2 1 1 1 2 1 1 1 X 1
2 1 1 3 1 2 3 4 1 2
1 1 2 1 1 4 1 1 1 2
3 2 3 5 6 1 1 X 1 4
Speed: 7
From (3, 4) to (2, 1)
Output: True
Дело 2б
3 6 1 1 X 4 1 2 1 X
5 1 2 2 1 1 1 X 1 5
2 1 1 1 2 1 1 1 X 1
2 1 1 3 1 2 3 4 1 2
1 1 2 1 1 4 1 1 1 2
3 2 3 5 6 1 1 X 1 4
Speed: 4
From (3, 4) to (2, 1)
Output: False
Дело 2с
3 6 1 1 X 4 1 2 1 X
5 1 2 2 1 1 1 X 1 5
2 1 1 1 2 1 1 1 X 1
2 1 1 3 1 2 3 4 1 2
1 1 2 1 1 4 1 1 1 2
3 2 3 5 6 1 1 X 1 4
Speed: 7
From (1, 8) to (2, 7)
Output: True
Дело 3а
2 1 1 2
2 3 3 1
Speed: 3
From (0, 0) to (1, 1)
Output: False
Дело 3б
2 1 1 2
2 3 3 1
Speed: 3
From (1, 1) to (0, 0)
Output: True
Правила, предположения и примечания
- Стандартные лазейки запрещены, ввод / вывод может быть в любом удобном формате
- Вы можете предположить, что все координаты находятся в сетке
- Скорость движения никогда не будет больше 100
- Недоступные ячейки могут быть представлены с очень большими числами (например, 420, 9001, 1 миллион) или с 0 или нулем, в зависимости от того, что наиболее удобно для вас.
- Все входные данные будут состоять из положительных целых чисел (если только не использовать ноль или 0 для представления недоступных ячеек)