QOJ.ac

QOJ

実行時間制限: 1 s メモリ制限: 512 MB 満点: 100

#24424. 故障火星車

統計

一輛在火星執行國際任務的火星車發生了故障。為了恢復其正常運作,需要提高其電池功率。

火星車的電池功率是一個正整數。目前電池功率為 $a$,為了恢復火星車的正常運作,需要將功率提高到 $b$。可以從地球向火星車傳送 X 和 Y 兩種特殊訊號來改變電池功率。X 型訊號使目前電池功率增加 $1$,Y 型訊號使目前電池功率增加 $2$。

任務組織者希望傳送盡可能少的訊號,將電池功率提高到所需值。遺憾的是,由於火星車的設計特點,一旦電池功率成為整數 $c$ 的倍數,火星車就會徹底損壞,不再回應訊號。

請撰寫一個程式,根據給定的初始電池功率 $a$、所需電池功率 $b$ 和整數 $c$,確定為恢復火星車的正常運作而必須傳送的最少訊號數。

輸入格式

輸入包含三個整數 $a$、$b$ 和 $c$,每行一個($1 \le a < b \le 10^9$,$2 \le c \le 10^9$,$a$ 和 $b$ 均不是 $c$ 的倍數)。

輸出格式

輸出一個整數:必須向火星車傳送的最少訊號數。

範例

輸入格式 1

2
7
3

輸出格式 1

3

輸入格式 2

4
10
3

輸出格式 2

4

說明

在第一個範例中,可以向火星車依序傳送 Y、X、Y 訊號。電池功率依序變化為 $2 \to 4 \to 5 \to 7$。

在第二個範例中,可以向火星車依序傳送 X、Y、X、Y 訊號。電池功率依序變化為 $4 \to 5 \to 7 \to 8 \to 10$。

子任務

只有通過某個子任務及其相依子任務的全部測試,才能獲得該子任務的分數。

子任務 分數 限制 相依子任務 回饋資訊
1 25 $1 \le a < b \le 15$, $2 \le c \le 15$ 完整
2 25 $1 \le a < b \le 10^5$, $2 \le c \le 10^5$ 1 完整
3 25 $1 \le a < b \le 10^9$, $c=2$ 完整
4 25 $1 \le a < b \le 10^9$, $2 \le c \le 10^9$ 1, 2, 3 完整

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.