#YC186. 公交车加油问题
公交车加油问题
公交车加油问题

题目描述
一辆公交车在坐标轴Ox上行驶,从点出发到达后立即折返,不断循环完成单程行驶。每个单程定义为:
- 从到
- 或从
公交车需要完成个单程行驶。油箱容量为升,每行驶1单位距离消耗1升汽油。初始时油箱是满的。
在的位置(0<f<a)处有一个加油站。公交车每次经过该点时(无论是去程还是返程)可以停下加油,加油后油箱立即充满。求完成k个单程所需的最少加油次数,若无法完成则输出-1。
输入格式
输入四个整数:
a b f k
a:终点坐标(0 < f < a ≤ 10⁶)b:油箱容量(1 ≤ b ≤ 10⁹)f:加油站坐标k:需要完成的单程次数(1 ≤ k ≤ 10⁴)
输出格式
一个整数表示最少加油次数,若无法完成则输出-1。
示例
6 9 2 4
4
6 10 2 4
2
6 5 4 3
-1
解释
在第一个例子中,公交车每次行驶都需要加油。 而在第二个示例中,巴士无需加油就能行驶 10 个单位的路程。因此,公交车走完全程后,经过第二段路程的 4 个单位,然后到达设有加油站的地点。然后,它可以给油箱加油,完成第二段路程,并通过第三段路程的 2 个单位。在这种情况下,它将再次到达设有加油站的地点。此外,他还可以将油箱加油至 10 升,以完成第三个旅程,并一直骑到第四个旅程。旅程结束时,油箱将是空的。
在第三个例子中,公共汽车无法完成 3 个行程,因为如果在第二个行程中加油,油箱中的汽油将只有 5 升,但公共汽车需要经过 8 个单位的路程才能进行下一次加油。
Related
In following contests: