만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

COPS: 포고 스틱을 타는 소

면접 대비

시간 제한1초메모리 제한1024 MB

요약
길이 L인 길을 0에서 L까지 이동하는 최소 점프 횟수를 구합니다. 속도는 매 점프마다 1씩만 바뀌고, 소똥이 있는 칸에는 착지할 수 없습니다.
난이도

보통10점 중 5점

유형
BFS, 동적 계획법
정답자
아직 제출이 없습니다

문제

Bessie 소는 정수 길이 LL인 소 길을 포고 스틱으로 이동하려고 한다. Bessie는 0번 지점에서 출발해 정수 단위의 포고 점프를 하여 정확히 LL번 지점에 도착한다. 속도 VV는 0에서 시작하며 항상 0 이상이다. 각 점프를 시작할 때 속도를 -1, 0, +1 중 하나만큼 바꿀 수 있다. 속도는 그 점프 동안 소가 길을 따라 이동하는 거리이다. LL번 지점에 도착할 때는 0 이상의 어떤 속도여도 된다.

Bessie는 길 위의 정수 지점에 있는 소똥 더미를 밟지 않으려고 한다. 소똥 더미는 1번 지점과 LL번 지점에는 없다.

정확히 LL번 지점에 도착하는 데 필요한 점프 횟수의 최솟값을 구하라.

입력

첫 줄에 두 정수 LL과 NN이 주어진다. LL은 길의 길이이고(1≤L≤5001 \le L \le 500), NN은 소똥 더미의 개수이다(1≤N≤2501 \le N \le 250). 다음 NN개 줄에는 소똥 더미의 위치가 한 줄에 하나씩 정수로 주어진다.

출력

Bessie가 소똥 더미를 밟지 않고 LL번 지점까지 가는 데 필요한 최소 점프 횟수를 한 줄에 출력한다. 그런 방법이 없으면 -1을 출력한다.

예제1

  1. 예제 1

    입력
    18 3
    5
    10
    15
    
    예상 출력
    6