#P16373. [2024年南京集训]跳棋1

[2024年南京集训]跳棋1

题目描述

一条无限长的数轴上有 nn 颗不能移动的跳棋。

对于每次询问,你需要把一颗可以移动的跳棋放在给定位置,并求出它最多可以进行多少次跳跃。每次询问相互独立。

设第 ii 颗不能移动的棋子的坐标为 xix_i,其中 i[1,n]i\in[1,n]

跳棋的移动规则如下:

  • 执行移动的棋子必须是那颗允许移动的跳棋;
  • 若可移动棋子当前位于 aa,目标位置为 bb,则区间 [b,a][b,a] 中必须恰好有一颗不能移动的棋子,并且这颗棋子到 aabb 的距离相等。

形式化地,必须满足

k=1n[xk[b,a]]=1\sum_{k=1}^{n}[x_k\in[b,a]]=1

且存在某个 kk,使得

xk=a+b2.x_k=\frac{a+b}{2}.
  • 跳棋只能向左跳,即必须满足 b<ab<a

输入格式

第一行包含两个整数 n,qn,q,分别表示不能移动的棋子数量和询问数量。

第二行包含 nn 个整数,第 ii 个整数为 xix_i

第三行包含 qq 个整数。每个整数 x0x_0 表示一次询问中可移动棋子的初始位置。

输出格式

输出 qq 行,每行一个整数。第 ii 行表示第 ii 次询问的答案。

样例 1

输入

3 3
3 5 8
4 6 7

输出

1
2
0

样例解释

样例示意图

图中黑色方块表示不能移动的棋子,三个红色方框从左到右分别表示三个询问的初始位置。

  • 对于第一个询问,可以跳 11 步:从 44 跳到 22
  • 对于第二个询问,可以跳 22 步:从 66 跳到 44,再跳到 22
  • 对于第三个询问,棋子不能向左移动,因为它左侧等距离的位置已经有一颗不能移动的棋子。

数据范围与提示

对于全部测试数据:

1n3×106,1\le n\le 3\times 10^6, 1q3×105,1\le q\le 3\times 10^5, 1x1018,1\le x\le 10^{18},

并且

xi+1<xi+1(i[1,n1]).x_i+1<x_{i+1}\qquad (i\in[1,n-1]).

子任务

子任务 分值 附加限制
0 10 n103, q103n\le 10^3,\ q\le 10^3
1 30 满足限制 A
2 25 满足限制 B
3 n3×105n\le 3\times 10^5
4 10 无附加限制
  • 限制 A:

    xn2×105.x_n\le 2\times 10^5.
  • 限制 B: 不满足

    xixi1100x_i-x_{i-1}\le 100

    的下标 ii 不超过 5050 个;其余下标对应的相邻差值之和不超过

    2×105.2\times 10^5.