만드는 중입니다

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

조경 디자인

면접 대비

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

요약
기둥 n개의 높이 a_i와 차이 k가 주어질 때, 두 칸마다 높이가 반복되고 인접한 기둥의 높이 차가 정확히 k가 되도록 만드는 최소 연산 횟수를 구합니다.
난이도

보통10점 중 5점

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

문제

마리오는 조경 디자인을 해보기로 했습니다. 그의 정원은 nn개의 세로 기둥으로 볼 수 있습니다. ii번째 기둥은 y 좌표 a_ia\_i에서 시작해 아래로 무한히 뻗어 있습니다. 한 번의 연산으로 마리오는 임의의 기둥 높이를 1만큼 바꿀 수 있습니다. 높이는 음수가 될 수 있습니다.

마리오는 높이를 a_ia\_i에서 b_ib\_i로 바꾸려고 합니다. 이때 1≤i≤n−21 \le i \le n - 2인 모든 ii에 대해 b_i=b_i+2b\_i = b\_{i + 2}가 성립해야 하고, 인접한 두 기둥의 높이 차이가 정확히 kk여야 합니다.

마리오에게 필요한 연산 횟수의 최솟값을 구하세요.

입력

첫 줄에 두 정수 nn과 kk가 주어집니다. nn은 기둥의 개수이고, kk는 인접한 두 기둥의 높이 차이입니다 (2≤n≤1052 \le n \le 10^5, 0≤k≤1090 \le k \le 10^9). 둘째 줄에는 기둥의 초기 높이 nn개가 정수 a_ia\_i로 주어집니다 (−109≤a_i≤109-10^9 \le a\_i \le 10^9).

출력

마리오가 원하는 높이를 얻기 위해 필요한 연산 횟수의 최솟값을 한 줄에 출력하세요.

힌트

첫 번째 테스트에서 마리오는 예를 들어 b_ib\_i를 2, 1, 2, 1, 2 순서로 만들 수 있습니다.

예제1

  1. 예제 1

    입력
    5 1
    1 2 3 -1 2
    
    예상 출력
    5