정수의 교차하지 않는 간격 세트가 있다고 가정하십시오 [a1,b1],[a2,b2],[a3,b3],...,[aN,bN]
. (여기서 [a,b]
보다 크거나 같은 정수의 집합이다 a
및보다 작거나 같음 b
).
인덱스 간격 X
은 bX - aX + 1
값을 포함 합니다. 이 번호로 전화하겠습니다 cX
.
각 간격은 다음 중 하나 일 수 있습니다 ...
- 변경되지 않음 (로 유지됨
[aX,bX]
) - (
+
번호cX
가 됨[aX,bX + cX]
)으로 줄 번호 쪽을 향해 오른쪽으로 확장 - 또는 (
-
번호cX
가 됨[aX - cX,bX]
)을 사용 하여 줄 번호 옆으로 왼쪽으로 확장
교차하지 않는 모든 업데이트 된 간격의 합집합으로 처리 할 수있는 최대 값은 얼마입니까?
형식의 문자열을 가져 [a1,b1],[a2,b2],[a3,b3],...,[aN,bN]
와서이 최대 값을 계산 하는 함수 또는 프로그램을 작성하십시오 . 함수를 작성하는 경우 값을 반환하십시오. 전체 프로그램을 작성하는 경우 stdin을 사용하여 입력하고 값을 stdout에 인쇄하십시오 (또는 가장 가까운 대안을 사용하십시오).
모든 값이 정상적인 부호있는 32 비트 정수 한계 내에 있고 모든 인덱스 aX
에 bX
대해 작거나 같다고 가정 할 수 있습니다 X
. 간격은 순서에 관계없이 항상 증가하지는 않습니다. 위 형식으로 문자열로 제공되어야합니다. 문자열이 비어있을 수 있으며,이 경우 대답은 0입니다.
예
입력이 [-3,0],[1,2],[4,9]
출력 인 경우 22가됩니다. 중간 간격에는 확장 할 공간이 없으므로 변경되지 않아야합니다. 왼쪽과 오른쪽 간격을 모두 확장 할 수 [-7,0]
및 [4,15]
각각. 의 노동 조합 [-7,0]
과 [1,2]
및 [4,15]
22 개 값의 3을 제외하고 -7 15 모든 값을 포함합니다.
[5,6]
하게 [3,8]
((6)의 응답의 경우), 아니면 그냥 될 수 [5,8]
또는 [3,6]
(4의 답변)?