#L4300. 「ROIR 2019 Day2」故障的火星车

「ROIR 2019 Day2」故障的火星车

题目描述

译自 ROI Regional 2019 Day2 T1. Неисправный марсоход

执行国际任务的火星车出现了故障。为了恢复其正常工作,需要提高其电池的功率。

火星车电池的功率用一个正整数表示。当前电池功率为 aa,为了恢复火星车的工作,需要将其功率提高到 bb。可以从地球向火星车发送两种类型的特殊信号来改变电池功率:XXYYXX 信号将当前电池功率增加 11YY 信号将当前电池功率增加 22

任务的组织者希望通过发送最少数量的信号来将电池功率提高到所需的水平。不幸的是,由于火星车的设计特点,如果电池功率是整数 cc 的倍数,火星车将彻底失效并停止响应信号。

编写一个程序,根据给定的初始电池功率 aa、所需的电池功率 bb 和整数 cc,确定需要向火星车发送的最少信号数量,以恢复其正常工作。

输入格式

输入包含三个整数:aa, bb, cc (1a<b109(1 \leq a < b \leq 10^92c1092 \leq c \leq 10^9aa 不是 cc 的倍数,bb 不是 cc 的倍数),每行一个。

输出格式

输出一个整数,表示需要向火星车发送的最少信号数量。

样例 1

输入

2
7
3

输出

3

在第一个样例中,可以按以下方式操作:发送 YYXXYY 信号。电池功率变化如下:24572 \rightarrow 4 \rightarrow 5 \rightarrow 7

样例 2

输入

4
10
3

输出

4

在第二个样例中,可以按以下方式操作:发送 XXYYXXYY 信号。电池功率变化如下:$4 \rightarrow 5 \rightarrow 7 \rightarrow 8 \rightarrow 10$。

数据范围与提示

详细子任务附加限制及分值如下表所示。

子任务 分值 附加限制 子任务依赖
1 25 1a<b151 \leq a < b \leq 15, 2c152 \leq c \leq 15
2 1a<b1051 \leq a < b \leq 10^5, 2c1052 \leq c \leq 10^5 1
3 1a<b1091 \leq a < b \leq 10^9, c=2c=2
4 1a<b1091 \leq a < b \leq 10^9, 2c1092 \leq c \leq 10^9