문제
블록을 쌓는 놀이를 하고 있다. 블록을 위로 쌓을 수 있는 칸들이 총
현재 i번 칸에는
1. 각 칸에 쌓인 블록의 개수는
2. 각 칸에 쌓인 블록의 개수는 단조증가한다: 1
여러분은 어떠한 칸의 블록을 인접한 칸으로 옮기는 것을 반복해 목표를 달성하려고 한다. 목표를 달성하는 것이 가능한지 판별하고, 가능한 경우 블록을 옮기는 횟수의 최솟값을 구해야 한다.
입력
첫 번째 줄에 N
두 번째 줄에
[제약 조건]
주어지는 수는 모두 정수이다.
출력
목표를 달성하는 것이 불가능하다면 -1을 출력한다.
목표를 달성하는 것이 가능하다면 블록을 옮기는 횟수의 최솟값을 출력한다.
부분문제
번호 | 점수 | 조건 |
---|---|---|
#1 | 7점 | |
#2 | 6점 | |
#3 | 11점 | |
#4 | 11점 | |
#5 | 30점 | |
#6 | 10점 | |
#7 | 25점 | 추가 제약 조건 없음. |
예제1
입력
53 5
2 0 9 1 4
출력
7
예제2
입력
103 8
2 7 9 10 2 2 2 8 3 8
출력
25
예제3
입력
106 7
10 7 5 4 4 3 9 4 9 7
출력
20
예제4
입력
32 3
1 1 1
출력
-1
출처
KOI 1차 2023 고3