이것은 그래프 구성에 대한 나의 이전의 도전 의 느슨한 연속이다 .
배경
편심 한 예술가가 그의 조각품의 구조적 무결성을 평가하기 위해 당신을 고용했습니다. 그는 입방체 모양의 자석을 가져다가 거대한 더미에 하나씩 떨어 뜨려 예술 작품을 만듭니다. 그의 방법을 더 잘 분석하기 위해 다음과 같은 2 차원 모델을 사용합니다. 빈 바닥에서 시작하여 #
정수 좌표에 자석 을 놓습니다 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