만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

조화 수열

시간 제한1초메모리 제한512 MB

요약
각 안쪽 항이 양쪽 이웃의 합과 같은 조화 수열 A 중에서 B와의 절댓값 차이 합이 가장 작은 값을 구합니다.
난이도

보통10점 중 7점

유형
수학, 이분 탐색, 정렬
정답자
아직 제출이 없습니다

문제

Flatland 대학교에서는 수열을 주제로 한 강의가 열린다. 정수로 이루어진 수열 a1,a2,…,ana_1, a_2, \ldots, a_n은 a1a_1과 ana_n을 제외한 모든 항이 양옆 이웃한 두 항의 합과 같으면 조화 수열이라고 부른다. 즉 a2=a1+a3a_2 = a_1 + a_3, a3=a2+a4a_3 = a_2 + a_4, ..., an−1=an−2+ana_{n-1} = a_{n-2} + a_n이 성립한다. 예를 들어 [1,2,1,−1][1, 2, 1, -1]은 2=1+12 = 1 + 1이고 1=2+(−1)1 = 2 + (-1)이므로 조화 수열이다.

길이가 같은 두 수열 A=[a1,…,an]A = [a_1, \ldots, a_n]과 B=[b1,…,bn]B = [b_1, \ldots, b_n]의 거리는 d(A,B)=∣a1−b1∣+∣a2−b2∣+…+∣an−bn∣d(A, B) = |a_1 - b_1| + |a_2 - b_2| + \ldots + |a_n - b_n|로 정의한다. 예를 들어 d([1,2,1,−1],[1,2,0,0])=0+0+1+1=2d([1, 2, 1, -1], [1, 2, 0, 0]) = 0 + 0 + 1 + 1 = 2이다.

교수는 강의가 끝날 때 길이 nn의 정수 수열 B=[b1,…,bn]B = [b_1, \ldots, b_n]을 칠판에 적고, d(A,B)d(A, B)가 최소가 되는 조화 수열 A=[a1,…,an]A = [a_1, \ldots, a_n]을 찾아오라는 과제를 냈다. 채점을 쉽게 하려고 답으로는 최소 거리만 쓰게 했다. 주어진 BB에서 조화 수열까지의 최소 거리를 구하는 프로그램을 작성하라.

입력

첫째 줄에 수열의 원소 개수 nn이 주어진다 (3≤n≤300 0003 \le n \le 300\,000).

둘째 줄에 정수 b1,b2,…,bnb_1, b_2, \ldots, b_n이 주어진다 (−109≤bi≤109-10^9 \le b_i \le 10^9).

출력

입력된 수열에서 조화 수열까지의 최소 거리를 정수 하나로 출력한다.

힌트

예시에서 최적의 조화 수열은 예를 들어 [1,2,1,−1][1, 2, 1, -1]이다.

예제1

  1. 예제 1

    입력
    4
    1 2 0 0
    
    예상 출력
    2