아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

증가하는 수열 만들기

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

요약
주어진 수열 A와의 절댓값 차의 합이 최소가 되는 순증가 정수 수열 B를 찾는다.
난이도

어려움10점 중 8점

유형
그리디, 수학
정답자
아직 제출이 없습니다

문제

정수 수열 A1,A2,…,ANA_1, A_2, \dots, A_N이 주어진다.

B1<B2<⋯<BNB_1 < B_2 < \dots < B_N을 만족하는 정수 수열 BB 가운데 ∣B1−A1∣+∣B2−A2∣+⋯+∣BN−AN∣|B_1 - A_1| + |B_2 - A_2| + \dots + |B_N - A_N|을 가장 작게 만드는 것을 골랐을 때, 그 최솟값을 출력한다.

수열 AA와 BB는 정수로만 이루어지고, 수열 BB의 원소는 32비트 정수형 범위 안에 들어 있어야 한다.

입력

첫째 줄에 NN이 주어진다. (1≤N≤1061 \le N \le 10^6)

둘째 줄에 수열 AA의 원소 A1,A2,…,ANA_1, A_2, \dots, A_N이 순서대로 주어진다. (0≤Ai≤2×1090 \le A_i \le 2 \times 10^9)

출력

가능한 ∣B1−A1∣+∣B2−A2∣+⋯+∣BN−AN∣|B_1 - A_1| + |B_2 - A_2| + \dots + |B_N - A_N|의 최솟값을 한 줄에 출력한다.

힌트

A=(9,4,8,20,14,15,18)A = (9, 4, 8, 20, 14, 15, 18)인 경우 B=(6,7,8,13,14,15,18)B = (6, 7, 8, 13, 14, 15, 18)이 합을 최소로 만들고, 그 값은 13이다.

예제5

  1. 예제 1

    입력
    7
    9 4 8 20 14 15 18
    
    예상 출력
    13
    
  2. 예제 2

    입력
    1
    0
    
    예상 출력
    0
    
  3. 예제 3

    입력
    2
    5 5
    
    예상 출력
    1
    
  4. 예제 4

    입력
    5
    1 2 3 4 5
    
    예상 출력
    0
    
  5. 예제 5

    입력
    5
    0 0 0 0 0
    
    예상 출력
    6