만드는 중입니다

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

점심

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

요약
길이 n인 늪에서 잎 n장에 한 번씩만 내려앉아 s에서 f까지 가는 경로를 찾고, 거리 1로 뛰는 횟수의 최솟값을 구합니다.
난이도

보통10점 중 5점

유형
수학, 그리디, 구현
정답자
아직 제출이 없습니다

문제

늪은 길이가 nn인 좁은 길이며, 크기가 11인 부유 잎이 11번부터 nn번까지 번호순으로 깔려 있다. 각 잎 위에는 파리가 한 마리씩 앉아 있다. 처음에 두꺼비 Kvait가 한 잎 위에 있으며, 지금 점심을 먹으려고 한다.

Kvait는 바로 옆 잎(거리 11)이나 그 옆 잎을 뛰어넘은 잎(거리 22)으로 양방향 어느 쪽으로든 뛸 수 있다. 잎에 내려앉을 때마다 그 잎의 파리를 먹는다. 잎은 불안정해서 Kvait가 뛰어나가면 그 잎은 가라앉아 다시 쓸 수 없다.

Kvait는 잎 ss에서 출발해 잎 ff에서 끝나면서 모든 파리를 먹어야 한다. 바로 옆 잎으로 뛰는 것이 한 잎을 건너뛰는 것보다 더 많은 에너지를 쓴다. 에너지를 최소로 쓰도록 이동을 계획하라.

입력

첫 줄에 세 정수 nn, ss, ff (2≤n≤100002 \le n \le 10000, 1≤s,f≤n1 \le s, f \le n)가 주어진다. 각각 잎의 개수, 출발 잎 번호, 도착 잎 번호이다.

출력

Kvait가 모든 파리를 먹는 데 필요한 바로 옆 잎으로의 최소 점프 횟수를 출력한다. 불가능하면 −1-1을 출력한다.

예제1

  1. 예제 1

    입력
    4 1 2
    
    예상 출력
    1