CF2055D.Scarecrow
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
题意翻译
在一个数轴上,原点处有一只乌鸦。同时在这个数轴上还有 n 个稻草人,分别位于 a1,a2,⋯,an 的位置。这些稻草人可以进行移动,每 1 秒可以向左或者向右一个单位长度。稻草人开始移动、静止不动或者改变移动方向的时间可以是任意时刻,可以不是整数。
由于乌鸦很害怕稻草人,所以乌鸦想要距离它前边且离它最近的稻草人至少有 k 的长度。为了能够保证这 k 的长度,乌鸦会施展它的传送能力:
- 令 x 为乌鸦当前的位置,y 为最大的的稻草人位置且满足 y≤x,如果 x−y<k,说明乌鸦和稻草人离得太近,那么乌鸦就会瞬移到位置 y+k。
乌鸦持续不断地进行传送,即它会在任意时刻检查它与它前边离它最近的稻草人的距离,若过近就会进行传送。
你的任务是用最少的时间让乌鸦移动到一个大于等于 l 的位置。你可以控制稻草人的移动以达到最优的时间。你需要输出 答案的两倍,可以证明这是一个整数。
输入格式
第一行一个整数 t,代表数据组数。
对于每组测试数据,第一行三个整数 n,k,l,代表稻草人个数、乌鸦与它前边的稻草人的最小距离以及乌鸦要到达的地点 l。
接下来一行 n 个整数,表示每个稻草人的位置,满足 0≤a1≤a2≤⋯≤an≤l。
输出格式
对于每一组测试数据,输出一行一个整数,表示乌鸦位置大于等于 l 所需要的最短时间的两倍。
样例解释
在第一组数据中,由于 0 处的稻草人,乌鸦会在一开始直接瞬移到位置 3。在接下来的两秒中,稻草人向右移动两个单位,乌鸦将会瞬移到位置 5,花费 2 秒,故输出 4。
在第二组数据中,前两秒,第一个稻草人和第二个稻草人会从位置 3 和 5 移动到位置 0 和 3,第三个稻草人不动。这时,由于 0 处的稻草人,乌鸦会瞬移到位置 2。在接下来的 0.5 秒内,第一个稻草人向右移动 0.5,第二个和第三个稻草人都向左移动 0.5 个单位长度,这时三个稻草人的位置分别为 0.5,2.5,4.5,导致乌鸦会瞬移到位置 6.5,所以乌鸦飞行到目标位置用了 2.5 秒,故输出为 5。
输入输出样例
输入#1
9 1 3 5 0 3 2 5 2 5 5 1 10 10 10 10 1 10 0 1 2 3 4 5 6 7 8 9 2 1 2 0 0 2 1 2 0 2 2 1 3 0 2 2 2 4 1 1 9 12 54 3 3 8 24 25 27 29 34 53
输出#1
4 5 20 0 2 1 2 2 7
输入解题思路,AI测评打分。不知道怎么写?