Skip to content

장애물

A5700
한국어

Language

Contribute a translation
Time limit
1000 ms
Memory limit
1024 MB
Submissions
0
Correct
0
Solved by
0
AC rate

Statement

당신은 친구들과 함께 운동장에서 장애물 뛰기 놀이를 하고 있다. 놀이는 수직선 위의 위치 $0$에서 시작하며, 각 장애물은 왼쪽부터 차례로 $X_1 < X_2 < ... < X_N$에 놓여 있다. $X_1 \ge 1$이다.

당신의 목표는 수직선 위에 놓인 $N$개의 장애물을 모두 뛰어넘는 것이다. 이를 위해 당신은 다음과 같은 두 가지 행동을 할 수 있다:

  • 오른쪽으로 $1$만큼 걸어간다. 즉, 위치 $x$에서 시작했다면 $x + 1$에 도착한다.
  • 오른쪽으로 $2$만큼 점프한다. 즉, 위치 $x$에서 시작했다면 $x + 2$에 도착한다.

장애물을 뛰어넘었다는 것은, 장애물을 점프로 넘어갔다는 것을 뜻한다. 다시 말해, 위치 $X_i$에 있는 장애물을 뛰어넘으려면 반드시 위치 $X_i-1$에서 오른쪽으로 $2$만큼 점프해서 위치 $X_i+1$에 도착해야 한다.

예를 들어, 아래 그림과 같이 수직선 위의 위치 $2, 5, 11$에 장애물이 놓여 있다고 가정하자.

img-d8b30a1ba315.png

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

  • 방법 1: $0 \rightarrow 1 \Longrightarrow 3 \rightarrow 4 \Longrightarrow 6 \rightarrow 7 \Longrightarrow 9 \rightarrow 10 \Longrightarrow 12$ (8회 이동, 장애물 3개 넘음) img-7787c3c31a3e.png
  • 방법 2: $0 \rightarrow 1 \Longrightarrow 3 \rightarrow 4 \Longrightarrow 6 \Longrightarrow 8 \Longrightarrow 10 \Longrightarrow 12$ (7회 이동, 장애물 3개 넘음) img-0b9b10d73d82.png

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

  • 방법 3: $0 \Longrightarrow 2 \Longrightarrow 4 \Longrightarrow 6 \Longrightarrow 8 \Longrightarrow 10 \Longrightarrow 12$ (6회 이동, 장애물 2개 넘음) img-d479af6163fe.png
  • 방법 4: $0 \rightarrow 1 \Longrightarrow 3 \Longrightarrow 5 \Longrightarrow 7 \Longrightarrow 9 \rightarrow 10 \Longrightarrow 12$ (7회 이동, 장애물 2개 넘음) img-3c644276c0d9.png
  • 방법 5: $0 \rightarrow 1 \Longrightarrow 3 \rightarrow 4 \rightarrow 5 \Longrightarrow 7$ (5회 이동, 장애물 1개 넘음) img-9137ffc8afa0.png

각 예시에서, 이동 횟수는 걸어간 횟수와 점프한 횟수의 합이다. 이 예시에서, 방법 2가 최소 이동 횟수로 장애물을 모두 넘어갈 수 있는 최적의 방법이다.

당신은 이동 횟수를 최소화하여 모든 장애물을 넘어가는 최적의 방법을 찾고자 한다. 단, 주어진 두 행동만으로 모든 장애물을 넘어가는 것이 불가능한 경우도 있다.

Constraints

  • 주어지는 모든 수는 정수이다.
  • $1 \leq N \leq 250\,000$
  • $1 \leq X_1 < X_2 < ... < X_N \leq 250\,000$

Subtasks

  1. (7점) $N = 1, X_1 \leq 5$
  2. (12점) $N = 1, X_1 \leq 5\,000$
  3. (23점) $N \leq 5\,000$, $1 \leq i \leq N$인 모든 $i$에 대하여 $X_i \leq 5\,000$
  4. (58점) 추가 제약 조건 없음.

Input

첫 번째 줄에는 $N$이 주어진다.

두 번째 줄에는 $N$개의 정수 $X_1, X_2, \cdots, X_N$이 공백을 사이에 두고 차례대로 주어진다.

Output

모든 장애물을 넘어갈 수 없다면, -1을 출력한다.

모든 장애물을 넘어갈 수 있다면, 모든 장애물을 넘기 위해 필요한 최소 이동 횟수를 출력한다.

Examples

Sample input 1
3
2 5 11
Sample output 1
7
Sample input 2
3
7 20 25
Sample output 2
14
Sample input 3
4
1 4 5 8
Sample output 3
-1

Tags

No tags yet

Source