qb#P10025. 城市散步与咖啡印章

城市散步与咖啡印章

背景

在一座叫做「栀子城」的城市里,有一条很长很长的步行街。 这条街从西到东是一条完全笔直的路,路边开满了风格各异的咖啡馆:

  • ii 家咖啡馆位于距离街道最西端 PiP_i 毫米处。
  • 所有咖啡馆的位置都不相同,并且从西到东依次为 P1<P2<<PNP_1 < P_2 < \dots < P_N

你最近迷上了收集咖啡杯印章。每家咖啡馆都愿意在你的纸杯上盖一个独特的小印章。 你走路的速度是 每秒 1 毫米,在某家咖啡馆门口停下、递杯子、盖章都可以看作是 不花时间 的(店员们都超高效)。

这天,好友给你准备了一张「咖啡散步券」: 只要你在一条散步路线中,从不同的咖啡馆里 收集到至少 KK 个印章,她就请你喝一杯限定口味的拿铁。 一旦你收集够 KK 个印章,就可以立刻打车回家,不需要再多走一步。

不过,好友还没想好在哪个路口把你放下车,于是她列出了 QQ 种可能的「下车点」方案:

  • 在第 jj 种方案中,她会把你放在距离街道最西端 DjD_j 毫米处。
  • 这个位置不一定刚好有咖啡馆,可能正好在两家店之间的路上。

对每一种下车方案,你都想知道: 从这个起点出发,最少需要走多少秒,才能收集到至少 KK 个不同咖啡馆的印章?

你只能在这条直路上来回走动,不能瞬移,也不能走侧路。 你可以往任意方向走,随时掉头。 当你拿到第 KK 个印章的那一刻,时间就停止记秒,你就不再继续前进。

请你帮自己算出,在每一种下车方案下,所需的最少时间。


输入格式

输入共三行:

  1. 第一行包含三个整数

    N,K,QN, K, Q
    • NN:咖啡馆的数量;
    • KK:你至少要收集的印章数量;
    • QQ:好友给出的不同下车方案数量。
  2. 第二行包含 NN 个整数

    P1,P2,,PNP_1, P_2, \dots, P_N

    其中第 ii 个数表示第 ii 家咖啡馆距离步行街最西端的距离(单位:毫厘),满足

    0P1<P2<<PN1090 \le P_1 < P_2 < \dots < P_N \le 10^9
  3. 第三行包含 QQ 个整数

    D1,D2,,DQD_1, D_2, \dots, D_Q

    其中第 jj 个数表示在第 jj 种方案中,你被放下的位置(单位:毫厘),满足

    0Dj1090 \le D_j \le 10^9

你从位置 DjD_j 出发,行走速度为 1 毫米/秒


输出格式

输出一行,包含 QQ 个整数,第 jj 个整数表示: 在下车位置为 DjD_j 的方案中,为了收集到至少 KK 个不同咖啡馆的印章,你至少需要花多少秒走路。

整数之间用一个空格隔开。


样例

样例输入 1

3 2 3
1 4 6
0 5 2

样例输出 1

4 3 4

样例输入 2

4 4 2
3 4 6 8
3 6

样例输出 2

5 7

数据范围与子任务

对所有测试数据,都保证:

  • 2N1000002 \le N \le 100000
  • 2KN2 \le K \le N
  • 1Q1000001 \le Q \le 100000
  • 0Pi1090 \le P_i \le 10^9,并且 Pi<Pi+1P_i < P_{i+1}
  • 0Dj1090 \le D_j \le 10^9

子任务 1(10 分)

  • 限制:Q=1Q = 1N1000N \le 1000

子任务 2(10 分)

  • 限制:Q=1Q = 1

子任务 3(20 分)

  • 限制:K=NK = N

子任务 4(60 分)

  • 无额外限制。