만드는 중입니다

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

차이를 MM으로

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

요약
수열의 인접한 두 원소 차이가 모두 M이 되도록 바꿔야 하는 원소의 최소 개수를 구합니다.
난이도

보통10점 중 7점

유형
동적 계획법, 해시맵, 수학
정답자
아직 제출이 없습니다

문제

동우는 길이 NN의 수열 A=[A1,A2,⋯ ,AN]A=[A_1, A_2, \cdots, A_N]을 분석하고 있다. 동우는 한 번의 시행으로 수열 AA의 한 항 AiA_i를 원하는 정수로 바꿀 수 있다. 귀찮음이 많은 동우는 가능한 최소한의 시행으로 모든 이웃한 항의 차이를 MM으로 만들고 싶어 한다. 즉, 모든 1≤i<N1 \leq i < N에 대하여 ∣Ai+1−Ai∣=M|A_{i+1}-A_i| = M으로 만드는 것이 목표이다. 동우를 도와 필요한 최소 시행 횟수를 구해보자.

입력

첫 번째 줄에 정수 NN(1≤N≤1061 \leq N \leq 10^6)과 MM(1≤M≤10121 \leq M \leq 10^{12})이 공백으로 구분되어 주어진다.

두 번째 줄에 NN개의 정수 A1,A2,⋯ ,ANA_1, A_2, \cdots, A_N(1≤Ai≤10121 \leq A_i \leq 10^{12})이 공백으로 구분되어 주어진다.

출력

첫 번째 줄에 모든 이웃한 항의 차이를 MM으로 만들기 위해 필요한 최소 시행 횟수를 출력한다.

만약 불가능하다면 -1을 출력한다.

예제1

  1. 예제 1

    입력
    9 3
    1 2 2 1 3 3 7 7 1
    
    예상 출력
    6