페이지를 불러오는 중…
해결한 사람
2
명
정답률
20.00
%
시간 제한
1000
ms
메모리 제한
2048
MB
당신은 친구들과 함께 운동장에서 장애물 뛰기 놀이를 하고 있다. 놀이는 수직선 위의 위치 에서 시작하며, 각 장애물은 왼쪽부터 차례로 에 놓여 있다. 이다.
당신의 목표는 수직선 위에 놓인 개의 장애물을 모두 뛰어넘는 것이다. 이를 위해 당신은 다음과 같은 두 가지 행동을 할 수 있다:
장애물을 뛰어넘었다는 것은, 장애물을 점프로 넘어갔다는 것을 뜻한다. 다시 말해, 위치 에 있는 장애물을 뛰어넘으려면 반드시 위치 에서 오른쪽으로 만큼 점프해서 위치 에 도착해야 한다.
예를 들어, 아래 그림과 같이 수직선 위의 위치 , , 에 장애물이 놓여 있다고 가정하자.

다음과 같은 방법들로 장애물을 모두 넘어갈 수 있다. 아래에서 는 걷기, 는 점프를 의미한다.


하지만, 다음과 같은 방법들은 장애물을 모두 넘어갈 수 없다.



각 예시에서, 이동 횟수는 걸어간 횟수와 점프한 횟수의 합이다. 이 예시에서, 방법 가 최소 이동 횟수로 장애물을 모두 넘어갈 수 있는 최적의 방법이다.
당신은 이동 횟수를 최소화하여 모든 장애물을 넘어가는 최적의 방법을 찾고자 한다. 단, 주어진 두 행동만으로 모든 장애물을 넘어가는 것이 불가능한 경우도 있다.
| 번호 | 배점 | 제한 |
|---|---|---|
| 1 | 7 | , |
| 2 | 12 | , |
| 3 | 23 | , 인 모든 에 대하여 |
| 4 | 58 | 추가 제약 조건 없음. |
첫 번째 줄에는 이 주어진다.
두 번째 줄에는 개의 정수 이 공백을 사이에 두고 차례대로 주어진다.
모든 장애물을 넘어갈 수 없다면, -1을 출력한다.
모든 장애물을 넘어갈 수 있다면, 모든 장애물을 넘기 위해 필요한 최소 이동 횟수를 출력한다.
3
2 5 11
7
3
7 20 25
14
4
1 4 5 8
-1
로그인 상태를 확인하는 중입니다.