문제에 대한 이해는 어렵지 않았는데 이를 코딩으로 옮기는 과정에서 계속 번번이 막혀서 시간이 좀 오래 걸렸던 문제였다.
질문게시판에 있는 반례 일부는 통과했지만 일부는 통과되지 않아서 계속 오답을 반복했다.
①. 만약 시작 지점의 값이 사과가 떨어지는 지점보다 왼쪽에 있다면?
②. 만약 시작 지점의 값이 사과가 떨어지는 지점보다 오른쪽에 있다면?
③. 만약 사과가 떨어지는 지점이 시작 지점과 끝 지점 사이의 값이라면?
이렇게 세 가지 경우로 나눠 종이에 그려가며 계산을 반복했다.
N, M = map(int, input().split())
J = int(input())
min_distance = 0
start = 1
end = M
for _ in range(J):
position = int(input())
if start <= position <= end:
continue
elif start > position:
min_distance += start - position
end -= start - position
start = position
else:
min_distance += position - end
start += position - end
end = position
print(min_distance)