CF2055D.Scarecrow

普及+/提高

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

题意翻译

在一个数轴上,原点处有一只乌鸦。同时在这个数轴上还有 nn 个稻草人,分别位于 a1,a2,⋯ ,ana_1,a_2,\cdots,a_n 的位置。这些稻草人可以进行移动,每 11 秒可以向左或者向右一个单位长度。稻草人开始移动、静止不动或者改变移动方向的时间可以是任意时刻,可以不是整数。

由于乌鸦很害怕稻草人,所以乌鸦想要距离它前边且离它最近的稻草人至少有 kk 的长度。为了能够保证这 kk 的长度,乌鸦会施展它的传送能力:

  • 令 xx 为乌鸦当前的位置,yy 为最大的的稻草人位置且满足 y≤xy\le x,如果 x−y<kx-y<k,说明乌鸦和稻草人离得太近,那么乌鸦就会瞬移到位置 y+ky+k。

乌鸦持续不断地进行传送,即它会在任意时刻检查它与它前边离它最近的稻草人的距离,若过近就会进行传送。

你的任务是用最少的时间让乌鸦移动到一个大于等于 ll 的位置。你可以控制稻草人的移动以达到最优的时间。你需要输出 答案的两倍,可以证明这是一个整数。

输入格式

第一行一个整数 tt,代表数据组数。

对于每组测试数据,第一行三个整数 n,k,ln,k,l,代表稻草人个数、乌鸦与它前边的稻草人的最小距离以及乌鸦要到达的地点 ll。

接下来一行 nn 个整数,表示每个稻草人的位置,满足 0≤a1≤a2≤⋯≤an≤l0\le a_1\le a_2\le \cdots\le a_n\le l。

输出格式

对于每一组测试数据,输出一行一个整数,表示乌鸦位置大于等于 ll 所需要的最短时间的两倍。

样例解释

在第一组数据中,由于 00 处的稻草人,乌鸦会在一开始直接瞬移到位置 33。在接下来的两秒中,稻草人向右移动两个单位,乌鸦将会瞬移到位置 55,花费 22 秒,故输出 44。

在第二组数据中,前两秒,第一个稻草人和第二个稻草人会从位置 33 和 55 移动到位置 00 和 33,第三个稻草人不动。这时,由于 00 处的稻草人,乌鸦会瞬移到位置 22。在接下来的 0.50.5 秒内,第一个稻草人向右移动 0.50.5,第二个和第三个稻草人都向左移动 0.50.5 个单位长度,这时三个稻草人的位置分别为 0.5,2.5,4.50.5,2.5,4.5,导致乌鸦会瞬移到位置 6.56.5,所以乌鸦飞行到目标位置用了 2.52.5 秒,故输出为 55。

输入输出样例

  • 输入#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测评打分。不知道怎么写?

首页