Ctrl K

Ближайшие товары по карману

Средняя
План магазина задан сеткой shop размером m × n: - 0 — стена, через неё не пройти; - 1 — пустой проход; - любое другое число — товар с такой ценой; по клеткам с товарами тоже можно ходить. Вы стоите в клетке start = [row, col] и за один шаг переходите в соседнюю по стороне клетку. Интересуют только товары с ценой в диапазоне price_range = [low, high] включительно, до которых можно дойти. Товары ранжируются по первому различающемуся признаку: 1. длина кратчайшего пути от старта — чем короче, тем выше; 2. цена — чем дешевле, тем выше; 3. номер строки — чем меньше, тем выше; 4. номер столбца — чем меньше, тем выше. Верните координаты count лучших товаров в порядке ранга, от лучшего к худшему. Если подходящих товаров меньше, верните их все.
Пример 1
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].

Пример 2
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 шагов. Подходящих товаров только два, поэтому возвращаем оба.

Ограничения
  • 1 ≤ m, n и m · n ≤ 10⁵
  • 0 ≤ shop[i][j] ≤ 10⁵
  • 2 ≤ low ≤ high ≤ 10⁵
  • Клетка start внутри сетки и не стена
  • 1 ≤ count ≤ m · n
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСколько клеток зальёт вода СложнаяK-е по величине в упорядоченной таблице СредняяКратчайший путь катящегося шарика СредняяМаршрут с самым высоким узким местом СредняяСамый пологий маршрут Средняя
загружаем Python…
Вход
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 теста на сервере, включая скрытые.