Jest to luźna kontynuacja mojego wcześniejszego wyzwania dotyczącego konstruowania grafów .
tło
Ekscentryczny artysta zatrudnił cię do oceny integralności strukturalnej swoich rzeźb. Tworzy swoje dzieła sztuki, biorąc wiązkę magnesów w kształcie sześcianu i upuszczając je jeden po drugim na ogromny stos. Aby lepiej przeanalizować jego metodę, używamy następującego dwuwymiarowego modelu. Zaczynamy od pustej podłogi i upuszczamy magnes #
przy dowolnej współrzędnej całkowitej, powiedzmy 0
:
|
v
#
===============
0
Jeśli upuści się inny magnes 0
, kończy się on na poprzednim:
|
v
#
#
===============
0
Teraz upuśćmy jeszcze jeden magnes na 0
, a następnie jeden na 1
:
|
#v
##
#
===============
0
Jak widać powyżej, spadający magnes przyczepia się do drugiego magnesu, który mija (pierwszy tylko go spowalnia). Drugi magnes nie musi znajdować się bezpośrednio pod pierwszym, a magnes po obu stronach nadal liczy się jako jeden magnes:
# #
##|##
# v #
### #
# #
===============
0
Artyści chcą, abyś obliczył maksymalną pionową przerwę w ostatecznej rzeźbie, czyli maksymalną liczbę pustych przestrzeni między dwoma magnesami na tej samej kolumnie lub magnesem i ziemią pod nim. Na powyższym obrazku liczba ta wynosiłaby 3 (w kolumnie 2
).
Wejście
Lista liczb całkowitych reprezentujących współrzędne, w których artysta upuszcza magnesy, odczytywana od lewej do prawej. Możesz założyć, że współrzędne są spełnione -1024 <= i < 1024
i że długość listy wynosi co najwyżej 1024
, jeśli to pomaga.
Wynik
Maksymalna pionowa przerwa w ostatecznej rzeźbie. Pusta rzeźba ma szczelinę -1
i ten przypadek musi zostać uwzględniony, ponieważ nasz rzeźbiarz jest dadaistą.
Dodatkowe zasady
Możesz podać funkcję lub pełny program. Wygrywa najkrótsza liczba bajtów, a standardowe luki są niedozwolone. Preferowany jest kod z objaśnieniami.
Przypadki testowe
[] -> -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