跳石头
跳石头
一年一度的 “ 跳石头 ” 比赛又要开始了!
这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛起点和终点。在起点和终点之间,有 N
块岩石(不含起点和终点的岩石)。在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至到达终点。
为了提高比赛难度,组委会计划移走一些岩石,使得选手们在比赛过程中的最短跳跃距离尽可能长。由于预算限制,组委会至多从起点和终点之间移走 M
块岩石(不能移走起点和终点的岩石)。
输入:
第一行包含三个整数 L
, N
, M
,分别表示起点到终点的距离,起点和终点之间的岩石数,以及组委会至多移走的岩石数。保证 L
≥ 1 且 N
≥ M
≥ 0 。
接下来 N
行,每行一个整数,第 i
行的整数 Di (0 < Di < L
),表示第 i
块岩石与起点的距离。这些岩石按与起点距离从小到大的顺序给出,且不会有两个岩石出现在同一个位置。
输出:
一个整数,即最短跳跃距离的最大值。
样例:
1 | 25 5 2 |
1 | 4 |
1.思路
2.代码实现
1 |
|
遗留问题:
题目给出条件,起点与终点的石头不可移除:但在程序中的循环缺涉及到了最后一块石头,且若最后一块石头不满足条件将会被移除
解答:如果需要移除终点,则移除终点前一块石头即可,体现成移除的数量加1(实际终点还是留下)
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.