S에서 D로 이동할 때 한 번에 F만큼 앞으로, B만큼 뒤로 뛸 수 있고 경찰서를 피해야 할 때 최소 이동 횟수를 구한다.
보통4BFS그래프아직 제출이 없습니다시간 제한1초메모리 제한512 MB홍익대학교 근처 오락실에 새 게임이 들어왔다. 플레이어는 방금 금은방을 턴 마포구의 대도 X가 되어 아무에게도 들키지 않고 X의 집까지 무사히 도착해야 게임을 클리어한다. 게임은 좌우 버튼 두 개로만 진행하며 규칙은 다음과 같다.
이 게임은 아직 베타 버전이어서 집에 무사히 갈 방법이 없는 버그도 있다.
지언이의 취미는 오락실 게임을 누구보다 빨리 클리어하는 것이다. 그래서 대도 X가 집에 무사히 도착하는 여러 방법 가운데 좌우 버튼을 누르는 횟수가 가장 적은 경우의 횟수를 알고 싶다.
마포구 건물의 개수 N, 털린 금은방 S, 대도 X의 집 D, 앞으로 한 번에 달리는 건물 수 F, 뒤로 한 번에 달리는 건물 수 B, 마포구 경찰서의 개수 K, 각 경찰서의 건물 번호 l1,l2,…,lK가 주어진다. 대도 X가 집에 무사히 도착하려면 버튼을 최소 몇 번 눌러야 하는지 구하는 프로그램을 작성하라.
집으로 가는 방법이 없는 경우를 발견하면 이 데이터를 게임 회사에 알리기 위해 BUG FOUND를 출력한다.
첫째 줄에 N, S, D, F, B, K가 주어진다. K>0이면 둘째 줄에 경찰서의 위치 l1,l2,…,lK가 주어진다.
첫째 줄에 대도 X가 건물 S에서 집 D까지 무사히 가기 위해 지언이가 눌러야 하는 버튼의 최소 횟수를 출력한다. D에 도달할 수 없는 데이터라면 BUG FOUND를 출력한다.