shop размером m × n:
- 0 — стена, через неё не пройти;
- 1 — пустой проход;
- любое другое число — товар с такой ценой; по клеткам с товарами тоже можно ходить.
Вы стоите в клетке start = [row, col] и за один шаг переходите в соседнюю по стороне клетку. Интересуют только товары с ценой в диапазоне price_range = [low, high] включительно, до которых можно дойти.
Товары ранжируются по первому различающемуся признаку:
1. длина кратчайшего пути от старта — чем короче, тем выше;
2. цена — чем дешевле, тем выше;
3. номер строки — чем меньше, тем выше;
4. номер столбца — чем меньше, тем выше.
Верните координаты count лучших товаров в порядке ранга, от лучшего к худшему. Если подходящих товаров меньше, верните их все.shop=[[1, 4, 0], [3, 1, 2], [0, 6, 1]], price_range=[2, 4], start=[1, 1], count=2 → [[1, 2], [1, 0]]
Все четыре соседа старта в одном шаге. Товар за 6 не по карману, остаются цены 2 в (1, 2), 3 в (1, 0) и 4 в (0, 1). При равном расстоянии дешевле — выше, поэтому первые два — [1, 2] и [1, 0].
shop=[[2, 0, 5], [1, 0, 1], [1, 1, 1]], price_range=[2, 5], start=[0, 0], count=3 → [[0, 0], [0, 2]]
Товар на стартовой клетке тоже считается, его расстояние 0. До товара в (0, 2) приходится обходить стену снизу — 6 шагов. Подходящих товаров только два, поэтому возвращаем оба.
start внутри сетки и не стенаshop=[[1, 4, 0], [3, 1, 2], [0, 6, 1]], price_range=[2, 4], start=[1, 1], count=2
[[1, 2], [1, 0]]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 43 теста на сервере, включая скрытые.