Ctrl K

Сдвинутые копии

Средняя
Дан массив profile длины n и массив limits такой же длины, где limits[i] = [lo, hi]. Массив copy длины n называется копией, если разности соседних элементов у него те же, что у profile: copy[i] - copy[i - 1] == profile[i] - profile[i - 1] для всех i от 1 до n - 1, и каждый элемент попадает в свой диапазон: lo ≤ copy[i] ≤ hi для limits[i] = [lo, hi]. Элементы копии — целые числа. Верните количество различных копий.
Пример 1
profile=[5, 3, 6], limits=[[1, 6], [2, 4], [4, 9]] → 3

Копия должна иметь вид [x, x - 2, x + 1]. Ограничения дают 1 ≤ x ≤ 6, 4 ≤ x ≤ 6 и 3 ≤ x ≤ 8, то есть x ∈ {4, 5, 6} — три копии.

Пример 2
profile=[2, 2], limits=[[1, 3], [5, 7]] → 0

Оба числа копии должны быть равны, но диапазоны [1, 3] и [5, 7] не пересекаются.

Ограничения
  • 2 ≤ n = len(profile) ≤ 10⁵
  • 1 ≤ profile[i] ≤ 10⁹
  • len(limits) = n
  • 1 ≤ limits[i][0] ≤ limits[i][1] ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПовернуть квадрат по часовой СредняяПостфиксный калькулятор СредняяПрокрутка массива вправо СредняяПростые числа до границы СредняяN-е число из заданных простых Средняя
загружаем Python…
Вход
profile=[5, 3, 6], limits=[[1, 6], [2, 4], [4, 9]]
Ожидается
3

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