#P15541. [CCC 2026 S1] Baby Hop, Giant Hop
[CCC 2026 S1] Baby Hop, Giant Hop
说明
青蛙萨曼莎在排成一条直线、等间距分布的荷叶间跳跃。荷叶的数量是无限的。荷叶按顺序用整数编号。每个整数都对应一片荷叶。
萨曼莎从编号为 的荷叶出发,想要跳到编号为 的荷叶。她可以做出长度为 的大跳跃,或者长度为 的小跳跃。每次跳跃既可以向前也可以向后。
萨曼莎想知道从 到 所需的最少跳跃次数。但有时,她也想知道第二少的跳跃次数。
输入格式
输入的第一行包含一个整数 ,表示起始荷叶的编号()。
第二行包含一个整数 ,表示目标荷叶的编号()。
第三行包含一个整数 ,表示一次大跳跃的距离()。
第四行包含一个整数 ,取值为 或 ,表示需要求出最少(当 时)还是第二少(当 时)的步数。
输出格式
输出一行,包含:
- 如果 ,输出最少的跳跃次数;
- 如果 ,输出第二少的跳跃次数。
0
10
3
1
4
0
11
4
1
4
0
11
4
2
5
0
0
3
1
0
提示
样例输入 1 的输出解释
萨曼莎用三次大跳跃跳到编号为 、 和 的荷叶,然后用一次小跳跃跳到编号为 的荷叶。
样例输入 2 的输出解释
萨曼莎用三次大跳跃跳到编号为 、 和 的荷叶,然后用一次(向后的)小跳跃跳到编号为 的荷叶。
样例输入 3 的输出解释
最少的跳跃次数()已在样例 2 中得到。由于 ,本输入需要求出第二少的步数。萨曼莎用两次大跳跃跳到编号为 和 的荷叶,然后用三次小跳跃跳到编号为 的荷叶。
以下表格显示了 15 分是如何分配的:
| 分值 | 的范围 | 的范围 | 的范围 | 附加限制 |
|---|---|---|---|---|
| 5 分 | 只需正向跳跃 | |||
| 6 分 | 无 | |||
| 2 分 | 或 | |||
注意,要获得满分,解决方案需要处理 64 位整数。例如:
- 在 C/C++ 中,应使用 long long 类型;
- 在 Java 中,应使用 long 类型。
翻译由 DeepSeek 完成
京公网安备 11011102002149号