포럼
문제 KOI00008

장애물

설명

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

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

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

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

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

Fig 1

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

방법

  • 방법 \(1\): \(0 → 1 ⟹ 3 → 4 ⟹ 6 → 7 ⟹ 9 → 10 ⟹ 12\) (\(8\)회 이동, 장애물 \(3\)개 넘음)

Fig 2

  • 방법 \(2\): \(0 → 1 ⟹ 3 → 4 ⟹ 6 ⟹ 8 ⟹ 10 ⟹ 12\) (\(7\)회 이동, 장애물 \(3\)개 넘음)

Fig 3

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

  • 방법 \(3\): \(0 ⟹ 2 ⟹ 4 ⟹ 6 ⟹ 8 ⟹ 10 ⟹ 12\) (\(6\)회 이동, 장애물 \(2\)개 넘음)

Fig 4

  • 방법 \(4\): \(0 → 1 ⟹ 3 ⟹ 5 ⟹ 7 ⟹ 9 → 10 ⟹ 12\) (\(7\)회 이동, 장애물 \(2\)개 넘음)

Fig 5

  • 방법 \(5\): \(0 → 1 ⟹ 3 → 4 → 5 ⟹ 7\) (\(5\)회 이동, 장애물 \(1\)개 넘음)

Fig 6

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

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

제약
  • 주어지는 모든 수는 정수이다.
  • \(1 ≤ N ≤ 250\, 000\)
  • \(1 ≤ X_1 < X_2 < \dots < X_N ≤ 250\, 000\)
입력 형식

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

출력 형식

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

서브태스크
서브태스크점수설명

1

7점

\(N = 1\), \(X \le 5\)

2

12점

\(N = 1\), \(X \le 5\,000\)

3

23점

\(N \le 5\,000\), \(1 \le i \le N\)인 모든 \(i\)에 대하여 \(X \le 5\,000\)

4

58점

추가 제약 조건 없음.

예제 1
입력
3
2 5 11
출력
7
예제 2
입력
3
7 20 25
출력
14
예제 3
입력
4
1 4 5 8
출력
-1
힌트

막혔나요? 코인으로 단계별 힌트를 잠금 해제하세요 — 첫 힌트는 가벼운 방향 제시, 뒤로 갈수록 더 많이 알려 줍니다. 문제를 풀면 모든 힌트가 무료로 공개됩니다.

문제 정보

riseoj 작성

출처 올림피아드 > 한국정보올림피아드 > KOI 2025 > 2차 대회 > 초등부 1번

평가 및 의견

장애물

개요
출제자 난이도 Bronze III 브론즈 III 의견 1 / 1
커뮤니티 난이도: Bronze III 브론즈 III
평균 품질: 5.0 / 5
티어 투표 분포
Bronze III 브론즈 III 1

Log in to rate problems.

개별 의견

풀이 제출

장애물

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8