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

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

Ландшафтный дизайн

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

요약
b_i = b_{i+2}이고 인접한 두 값의 차가 k가 되도록 정수 높이 b_i를 정할 때, |a_i - b_i|의 합을 최소로 만든다.
난이도

보통10점 중 4점

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

문제

Марио решил заняться ландшафтным дизайном. Сейчас его сад можно представить как nn вертикальных столбиков, ii-й из которых начинается на yy координате a_ia\_i, и уходит бесконечно вниз. За одну операцию Марио может изменить высоту любого столбика на 11 (обратите внимание, что высоты могут становиться отрицательными). Марио хочет изменить высоты столбиков с a_ia\_i на b_ib\_i так, чтобы для любого 1≤i≤n−21 \le i \le n - 2 выполнялось b_i=b_i+2b\_i = b\_{i + 2}, а любые два соседних столбика отличались по высоте ровно на 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: 22, 11, 22, 11, 22.

예제1

  1. 예제 1

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