Це слабке продовження мого попереднього завдання зі створення графіків .
Фон
Ексцентричний художник найняв вас на оцінку структурної цілісності його скульптур. Він творить свої твори мистецтва, беручи купу магнітоподібних кубиків і скидаючи їх по черзі у величезну купу. Для кращого аналізу його методу ми використовуємо наступну двовимірну модель. Ми починаємо з порожнього поверху і опускаємо магніт #
на будь-яку цілу координату, скажімо 0
:
|
v
#
===============
0
Якщо впаде інший магніт 0
, він закінчується поверх попереднього:
|
v
#
#
===============
0
Тепер давайте кинемо ще один магніт на 0
, а потім один на 1
:
|
#v
##
#
===============
0
Як видно вище, падаючий магніт прилипає до другого магніту, який він пропускає (перший просто уповільнює його). Другий магніт не повинен знаходитися безпосередньо під першим, а магніт з обох сторін все ще вважається одним магнітом:
# #
##|##
# v #
### #
# #
===============
0
Художники хочуть, щоб ви обчислили максимальну вертикальну щілину в кінцевій скульптурі, тобто максимальну кількість порожніх проміжків між двома магнітами на одному стовпчику, або магнітом і землею під ним. На наведеному малюнку це число було б 3 (у стовпці 2
).
Вхідні дані
Список цілих чисел, що представляють координати, куди художник скидає свої магніти, читається зліва направо. Ви можете припустити, що координати задовольняють -1024 <= i < 1024
і що довжина списку становить максимум 1024
, якщо це допомагає.
Вихідні дані
Максимальний вертикальний зазор у фінальній скульптурі. Порожня скульптура має прогалини -1
, і цю справу треба включити, оскільки наш скульптор - дадаїст.
Додаткові правила
Ви можете надати функцію або повну програму. Виграє найкоротший байт, а стандартні лазівки заборонені. Код з поясненнями є кращим.
Тестові справи
[] -> -1
[0,2,1] -> 0
[0,0,0,0,0,1,-1] -> 3
[0,0,0,0,0,1,1,1,2] -> 4
[1,1,2,2,2,2,2,2,1] -> 2
[1,1,2,2,2,2,2,2,1,0,1,0] -> 2
[1,2,1,2,1,2,1,2,2,2,2,1,0] -> 3
[-1,-1,-1,1,1,1,0] -> 1
[-1,-1,-1,-1,2,2,1,1,2,2,2,1,0] -> 2
[-2,-2,-2,-1,-1,-1,0,0,0,1,1,1,2,2,2,3,3,4,4,5,5,5,6] -> 6