Прибор записал последовательность показаний. Участок считают стабильным, если разность между наибольшим и наименьшим показаниями на нём не превышает 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
|