Олимпиадный тренинг

Задача . Стабильный участок измерений


Задача

Темы:

Прибор записал последовательность показаний. Участок считают стабильным, если разность между наибольшим и наименьшим показаниями на нём не превышает delta.

Найдите максимальное количество показаний в одном стабильном непрерывном участке. Показания должны идти подряд в исходной последовательности: переставлять их или пропускать внутренние элементы нельзя.

Что сделать

  • Напишите spread(values): для непустого списка функция возвращает размах, то есть максимум минус минимум.
  • Напишите longest_stable(values, delta): функция перебирает непустые непрерывные участки, вызывает для них spread и возвращает наибольшую допустимую длину.
  • В основной программе вызовите longest_stable и выведите её результат.

Сравнивать только соседние показания недостаточно: ограничение относится ко всему выбранному участку. Участок из одного показания всегда стабилен. Все функции получают данные через параметры и ничего не печатают.

Входные данные

Первая строка: целые n и delta, 1 ≤ n ≤ 150, 0 ≤ delta ≤ 2000000. Вторая строка содержит n целых показаний от −1000000 до 1000000. Все показания и delta даны в одинаковых единицах.

Выходные данные

Одно целое число — наибольшее количество подряд идущих показаний в стабильном участке.


Примеры
№Входные данныеВыходные данные
1
4 1
0 1 2 3
2
2
6 0
5 5 8 5 5 5
3
Статистика успешных решений по компиляторам
Комментарий учителя