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。