만드는 중입니다

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

고장 난 화성 탐사선

면접 대비

시간 제한2초메모리 제한512 MB

요약
a에서 시작해 +1과 +2만으로 b에 도달하되 도중에 c의 배수가 되지 않도록 하는 최소 신호 횟수를 구한다.
난이도

보통10점 중 4점

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

문제

화성에서 국제 임무를 수행하는 화성 탐사선이 고장 났다.

탐사선을 다시 작동시키려면 배터리 출력을 높여야 한다. 화성 탐사선의 배터리 출력은 양의 정수로 주어진다. 현재 배터리 출력은 aa이고, 탐사선을 다시 작동시키려면 출력을 bb까지 높여야 한다. 배터리 출력을 바꾸기 위해 지구에서 화성 탐사선으로 두 종류의 특수 신호 X와 Y를 보낼 수 있다. 신호 X는 현재 배터리 출력을 1만큼 높이고, 신호 Y는 현재 배터리 출력을 2만큼 높인다.

임무 담당자들은 최소 개수의 신호를 보내 배터리 출력을 필요한 값까지 바꾸려고 한다. 그러나 화성 탐사선의 구조상 배터리 출력이 정수 cc의 배수가 되면 탐사선은 완전히 고장 나서 신호에 반응하지 않는다.

시작 배터리 출력 aa, 필요한 배터리 출력 bb, 정수 cc가 주어질 때, 탐사선을 다시 작동시키기 위해 보내야 하는 최소 신호 개수를 구하는 프로그램을 작성해야 한다.

입력

입력은 세 정수 aa, bb, cc로 이루어지며, 한 줄에 하나씩 주어진다. (1≤a<b≤1091 \le a < b \le 10^9, 2≤c≤1092 \le c \le 10^9, aa는 cc의 배수가 아니고, bb도 cc의 배수가 아니다.)

출력

화성 탐사선에 보내야 하는 최소 신호 개수를 정수 하나로 출력한다.

힌트

첫 번째 예제에서는 신호 Y, X, Y를 보내면 된다. 배터리 출력은 2→4→5→72 \to 4 \to 5 \to 7과 같이 변한다. 두 번째 예제에서는 신호 X, Y, X, Y를 보내면 된다. 배터리 출력은 4→5→7→8→104 \to 5 \to 7 \to 8 \to 10과 같이 변한다.

예제2

  1. 예제 1

    입력
    2
    7
    3
    
    예상 출력
    3
    
  2. 예제 2

    입력
    4
    10
    3
    
    예상 출력
    4