Телефон абонента МТС ловят k базовых станций. Для каждой есть список pings[i] — минуты с начала суток, когда станция видела телефон, по возрастанию, без пустых списков.
Найдите отрезок [lo, hi] наименьшей длины hi - lo, в который каждая станция отметила телефон хотя бы раз. Концы — значения из списков.
Если таких отрезков несколько, верните тот, у которого lo меньше.
В работе: Оценка положения по трём и более станциям: чем короче окно, где отметились все, тем точнее триангуляция.
Пример 1
Ввод
pings = [[4, 10, 15, 24], [0, 9, 12, 20], [5, 18, 22, 30]]
Вывод
[20, 24]
В [20, 24] есть 24, 20 и 22 — длина 4.
Пример 2
Ввод
pings = [[7, 8], [8, 9]]
Вывод
[8, 8]
Обе видели телефон в минуту 8: окно нулевой длины.
Ограничения
- 1 ≤ k ≤ 3500
- 1 ≤ длина
pings[i]≤ 50 - суммарно отметок ≤ 10⁵
- 0 ≤
pings[i][j]≤ 10⁹ - Лимит — 2 с на тест (2000 мс).
Как вызывается ваш код
Читать ввод и печатать ответ не нужно: мы вызываем функцию на каждом тесте и сравниваем то, что она вернула.
print() и console.log() уходят в консоль.
def tower_window(pings):
Источник: наша задача на данных МТС. Условие пересказано своими словами.
Давали на собеседовании?
Стр. 1Ctrl+Enter — запуск · Ctrl+Shift+Enter — отправка
Ожидаемый ответ не нужен: покажем, что вернула функция.
Здесь появится результат отправки.