만드는 중입니다

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

blobsad

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

요약
인접한 칸으로 블롭을 옮겨 모든 칸의 블롭 수를 K의 배수로 만들 때 드는 최소 이동 횟수를 구하고, 불가능하면 blobsad를 출력한다.
난이도

보통10점 중 7점

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

문제

연구소에 함께 사는 채완이와 주환이는 블롭을 아주 좋아한다. 그래서 둘은 연구소에서 블롭을 키운다.

둘은 1×11 \times 1 크기의 정사각형 NN개로 나누어진 1×N1 \times N 크기의 직사각형 통 안에 블롭을 키우고 있으며, ii번째 1×11 \times 1 정사각형에는 블롭 AiA_i마리를 키운다.

그런데 어느 날, 채완이와 주환이는 블롭들이 슬퍼한다는 사실을 알아차렸다.

연구 끝에 블롭은 같은 칸에 있는 블롭의 수가 KK의 배수가 아니면 슬퍼한다는 사실을 알 수 있었고, 통에 있는 블롭을 적절히 옮겨 슬퍼하지 않게 만들려고 한다.

그러나 11초마다 하나의 블롭만 옮길 수 있으며, 블롭은 여러 칸을 한번에 움직이는 것을 싫어하기 때문에 인접한 칸으로만 옮길 수 있다. 채완이와 주환이는 할 일이 많이 있기에 최대한 빠르게 블롭을 옮기는 일을 해결하려고 한다.

채완이와 주환이를 위해 블롭을 옮기는 일을 마칠 수 있는 최소 시간을 구해주자.

입력

첫째 줄에 NN과 KK가 공백으로 구분되어 주어진다.

둘째 줄에 1×11 \times 1 정사각형에 들어가 있는 블롭의 수 A1,A2,⋯ ,ANA_1, A_2, \cdots, A_N이 공백으로 구분되어 주어진다.

출력

채완이와 주환이가 이 일을 마칠 수 있는 최소 시간을 초 단위로 출력한다. 만약, 마칠 수 없다면 blobsad를 출력한다.

제한

  • 1≤N≤1061 \le N \le 10^6
  • 1≤K≤1091 \le K \le 10^9
  • 1≤Ai≤1091 \le A_i \le 10^9 (1≤i≤N)(1 \le i \le N)

예제2

  1. 예제 1

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

    입력
    5 4
    1 1 1 1 1
    
    예상 출력
    blobsad