P15528 [ROIR 2015 Day 2] forest 伐木
题目描述
农夫尼古拉雇佣了两个伐木工人:德米特里和费多尔,来砍伐一片树林,计划在这里种植玉米。树林中有 $X$ 棵树。
德米特里每天砍伐 $A$ 棵树,但每 $K$ 天他休息,什么也不砍。因此,德米特里在第 $K$、$2K$、$3K$ 天等休息。
费多尔每天砍伐 $B$ 棵树,但每 $M$ 天他休息,什么也不砍。因此,费多尔在第 $M$、$2M$、$3M$ 天等休息。
两位伐木工人并行工作,因此,在既不休息的日子,他们一共砍伐 $A + B$ 棵树;在只休息费多尔的日子,他们砍伐 $A$ 棵树;在只休息德米特里的日子,他们砍伐 $B$ 棵树;在两人都休息的日子,什么也不砍。
农夫尼古拉希望知道,伐木工人们需要多少天才能砍完所有的树,这样他就可以开始播种玉米。
**任务**:编写一个程序,给定整数 $A$、$K$、$B$、$M$ 和 $X$,计算出所有树木被砍伐完所需的天数。
输入格式
输入文件包含五个整数,空格分隔:$A$、$K$、$B$、$M$ 和 $X$($1 \leq A, B \leq 10^9$,$2 \leq K, M \leq 10^{18}$,$1 \leq X \leq 10^{18}$)。
输出格式
输出文件应该包含一个整数 —— 砍伐所有树木所需的天数。
说明/提示
### 示例说明
在这个例子中,伐木工人们在 $7$ 天内砍掉了 $25$ 棵树,具体情况如下:
* 第 $1$ 天:德米特里砍了 $2$ 棵树,费多尔砍了 $3$ 棵树,总计 $5$ 棵树;
* 第 $2$ 天:德米特里砍了 $2$ 棵树,费多尔砍了 $3$ 棵树,总计 $10$ 棵树;
* 第 $3$ 天:德米特里砍了 $2$ 棵树,费多尔休息,总计 $12$ 棵树;
* 第 $4$ 天:德米特里休息,费多尔砍了 $3$ 棵树,总计 $15$ 棵树;
* 第 $5$ 天:德米特里砍了 $2$ 棵树,费多尔砍了 $3$ 棵树,总计 $20$ 棵树;
* 第 $6$ 天:德米特里砍了 $2$ 棵树,费多尔休息,总计 $22$ 棵树;
* 第 $7$ 天:德米特里砍了 $2$ 棵树,费多尔砍了剩下的 $1$ 棵树,总计 $25$ 棵树被砍掉。
### 评分系统与子任务描述
#### 子任务 1(32 分)
* $1 \leq X \leq 1000$,$1 \leq A, B \leq 1000$,$2 \leq K, M \leq 1000$
* 若所有测试都通过,才能得分。
#### 子任务 2(10 分)
* $1 \leq X \leq 10^{18}$
* $X < K$
* $X < M$
* 在解决此子任务时,可以假设伐木工人不休息。
* 若所有测试都通过,才能得分。
#### 子任务 3(10 分)
* $1 \leq X \leq 10^{18}$
* 另外的条件是 $K = M$。
* 若所有测试都通过,才能得分。
#### 子任务 4(48 分)
* $1 \leq X \leq 10^{18}$,$1 \leq A, B \leq 10^9$,$2 \leq K, M \leq 10^{18}$
* 该子任务有 $16$ 个测试,每个测试得分为 $3$ 分,每个测试独立评分。
翻译来源:GPT 5.2。