#P15528. [ROIR 2015 Day 2] forest 伐木

[ROIR 2015 Day 2] forest 伐木

说明

农夫尼古拉雇佣了两个伐木工人:德米特里和费多尔,来砍伐一片树林,计划在这里种植玉米。树林中有 XX 棵树。

德米特里每天砍伐 AA 棵树,但每 KK 天他休息,什么也不砍。因此,德米特里在第 KK2K2K3K3K 天等休息。

费多尔每天砍伐 BB 棵树,但每 MM 天他休息,什么也不砍。因此,费多尔在第 MM2M2M3M3M 天等休息。

两位伐木工人并行工作,因此,在既不休息的日子,他们一共砍伐 A+BA + B 棵树;在只休息费多尔的日子,他们砍伐 AA 棵树;在只休息德米特里的日子,他们砍伐 BB 棵树;在两人都休息的日子,什么也不砍。

农夫尼古拉希望知道,伐木工人们需要多少天才能砍完所有的树,这样他就可以开始播种玉米。

任务:编写一个程序,给定整数 AAKKBBMMXX,计算出所有树木被砍伐完所需的天数。

输入格式

输入文件包含五个整数,空格分隔:AAKKBBMMXX1A,B1091 \leq A, B \leq 10^92K,M10182 \leq K, M \leq 10^{18}1X10181 \leq X \leq 10^{18})。

输出格式

输出文件应该包含一个整数 —— 砍伐所有树木所需的天数。

2 4 3 3 25
7

提示

示例说明

在这个例子中,伐木工人们在 77 天内砍掉了 2525 棵树,具体情况如下:

  • 11 天:德米特里砍了 22 棵树,费多尔砍了 33 棵树,总计 55 棵树;
  • 22 天:德米特里砍了 22 棵树,费多尔砍了 33 棵树,总计 1010 棵树;
  • 33 天:德米特里砍了 22 棵树,费多尔休息,总计 1212 棵树;
  • 44 天:德米特里休息,费多尔砍了 33 棵树,总计 1515 棵树;
  • 55 天:德米特里砍了 22 棵树,费多尔砍了 33 棵树,总计 2020 棵树;
  • 66 天:德米特里砍了 22 棵树,费多尔休息,总计 2222 棵树;
  • 77 天:德米特里砍了 22 棵树,费多尔砍了剩下的 11 棵树,总计 2525 棵树被砍掉。

评分系统与子任务描述

子任务 1(32 分)

  • 1X10001 \leq X \leq 10001A,B10001 \leq A, B \leq 10002K,M10002 \leq K, M \leq 1000
  • 若所有测试都通过,才能得分。

子任务 2(10 分)

  • 1X10181 \leq X \leq 10^{18}
  • X<KX < K
  • X<MX < M
  • 在解决此子任务时,可以假设伐木工人不休息。
  • 若所有测试都通过,才能得分。

子任务 3(10 分)

  • 1X10181 \leq X \leq 10^{18}
  • 另外的条件是 K=MK = M
  • 若所有测试都通过,才能得分。

子任务 4(48 分)

  • 1X10181 \leq X \leq 10^{18}1A,B1091 \leq A, B \leq 10^92K,M10182 \leq K, M \leq 10^{18}
  • 该子任务有 1616 个测试,每个测试得分为 33 分,每个测试独立评分。

翻译来源:GPT 5.2。