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