#L3977. 「JOISC 2023 Day4」Bitaro 之旅

「JOISC 2023 Day4」Bitaro 之旅

题目描述

题目译自 JOISC 2023 Day4 T3 「ビ太郎の旅 / Bitaro's Travel」

JOI 市有一条非常长的路,可以将其看成实数轴。路上的一个位置用一个实数坐标表示。在 JOI 市,沿路有 NN 个景点,按坐标递增顺序编号为 11NN。第 ii (11\leii\leNN) 个景点的坐标是 XiX_i

Bitaro 会游览 JOI 市的所有景点。因为「贪心」是他的人生信条,他会重复如下操作直到他游览了所有景点:

xx 为 Bitaro 目前所在的位置。在他还没游览的景点中,他会选择离目前自己所在位置最近的景点 ii,即 |xx-XiX_i| 最小的景点 ii,然后移动到景点 ii 并游览。如果有多个景点满足条件,他会移向坐标最小的那个景点。这里 |tt| 表示 tt 的绝对值。

然而,由于多年来的经验,Bitaro 知道如果他只是重复上述过程,游览路线总长度可能会被他预期的长。因为游览路线总长度随起始坐标的变化而变化,他想知道如果他从 QQ 个候选起始坐标 S1S_1,S2S_2,\ldots,SQS_Q 出发的话,他游览完所有景点所经过的游览路线长度分别是多少。

给定 JOI 市的信息和候选起始坐标,写一个程序计算对于 Bitaro 从每个起点出发时,他游览完所有景点所经过的游览路线长度是多少。

输入格式

第一行一个整数 NN

第二行 NN 个整数 X1X_1,X2X_2,\ldots,XNX_N

第三行一个整数 QQ

接下来 QQ 行,每行一个整数 SjS_j

输出格式

输出 QQ 行,第 jj 行输出一个整数,表示 Bitaro 从坐标 SjS_j 出发,他游览完所有景点所经过的游览路线长度是多少。

样例 1

输入

55 00 55 66 77 99 11 77

输出

1515

如果 Bitaro 从坐标 77 出发,他会按如下方式游览所有景点:

他还没游览的景点为 11,22,33,44,55,这些景点距离 Bitaro 目前位置的距离分别为 77,22,11,00,22。因为景点 44 离 Bitaro 目前位置最近,他会留在坐标 77 位置并游览景点 44

他还没游览的景点为 11,22,33,55,这些景点距离 Bitaro 目前位置的距离分别为 77,22,11,22。因为景点 33 离 Bitaro 目前位置最近,他会从坐标 77 前往坐标 66 并游览景点 33

他还没游览的景点为 11,22,55,这些景点距离 Bitaro 目前位置的距离分别为 66,11,33。因为景点 22 离 Bitaro 目前位置最近,他会从坐标 66 前往坐标 55 并游览景点 22

他还没游览的景点为 11,55,这些景点距离 Bitaro 目前位置的距离分别为 55,44。因为景点 55 离 Bitaro 目前位置最近,他会从坐标 55 前往坐标 99 并游览景点 55

他还没游览的景点为 11,因为景点 11 离 Bitaro 目前位置最近,他会从坐标 99 前往坐标 00 并游览景点 11

因为 Bitaro 的游览路线总长为 1515,所以输出 1515

这组样例满足所有子任务的限制。

样例 2

输入

1010 11 22 33 44 55 66 77 88 99 1010 1010 11 22 33 44 55 66 77 88 99 1010

输出

99 1010 1111 1212 1313 1414 1515 1616 1717 99

这组样例满足子任务 33,44 的限制。

数据范围与提示

对于所有输入数据,满足:

11\leNN,QQ\le22×\times10510^5

00\leXiX_i,SjS_j\le10910^9,XiX_i<<Xi+1X_{i+1}

详细子任务附加限制及分值如下表所示。

子任务编号 附加限制 分值
11 QQ==11,NN\le20002000 55
22 QQ==11 1010
33 Xi+1X_{i+1}-XiX_i\le100100 3030
44 无附加限制 5555

要不要我帮你检查一下是否有遗漏的数学符号没添加 或者需要调整某些符号的格式(比如把连续符号的 合并合并 等),可以随时告诉我~