#L4188. 「BalticOI 2023」Tycho

「BalticOI 2023」Tycho

4188. 「BalticOI 2023」Tycho

题目描述

题目译自 BalticOI 2023 Day1「Tycho」

行星探测车 Tycho VIII 需要在采集完矿物样本后返回基地。探测车从位置 00 沿直线行进,到达位于位置 bb 的基地。在移动过程中,它以每秒 11 个单位的速度缓慢而稳定地前进。在恶劣的行星环境中,探测车每秒会受到 11 单位的环境伤害。

附近一颗脉冲星的辐射使情况变得更糟,每 pp 秒就会再带来 dd 单位的附加伤害。不过,只要在沿途的 nn 个不同的藏身点(洞穴、植被、大岩石、行星上巨型动物的尸体)中找到一个,就能避免辐射伤害。探测车可以选择在任意点停留任意整数秒。

起始位置 00 和位于 bb 的基地都有遮挡物,因此探测车在那里不会受到辐射伤害。

在返回基地的途中,探测车受到的最小伤害是多少?

例子

考虑如下情况,其中基地位于位置 1818,位置 881515 有藏身点。

假设脉冲星的周期为 44,那么不在藏身点的探测器会在 44881212 等时刻受到伤害。如果探测器在 00 时从起始位置(有遮挡的地方)出发,它可以在时刻 88 到达第一个藏身点,在时刻 44 会受到辐射伤害 dd(但在 88 时不会受到伤害,因为那时在藏身点)。如果探测器继续不停地前进,在时刻 1818 到达大本营,又会受到 d+dd + d 个单位的辐射伤害(分别在时刻 12121616)。这样,它会受到 d+d+d=3dd + d + d = 3d 个单位的辐射伤害和 1818 个单位的环境伤害。然而,如果探测器在第 22 个藏身点(位置 1515)等待 11 单位时间,时刻 1616 的脉冲就不会对它造成任何伤害,它在时刻 1919 到达基地时总共只受到 2d+192d+19 单位的伤害。对于大多数 dd 值来说,这种情况都比较好。

如果脉冲星的周期为 1010,那么探测车就可以在起始位置等待 22 单位时间,然后直接回基地,无需在任何藏身点停留。这样,它就能在脉冲星耀斑出现的时刻恰好到达第一个藏身点(位置 88),并在时刻 2020 到达基地,总共受到 2020 单位环境伤害,而没有受到任何辐射伤害。

输入格式

第一行四个整数 b,p,d,nb,p,d,n,分别表示基地的位置,脉冲星耀斑的频率,脉冲星耀斑带来的附加辐射伤害和藏身点个数。

接下来 nn 行,每行一个整数 aia_i,表示藏身点的位置。保证 0<a1<<an<b0<a_1<\ldots<a_n<b

输出格式

输出一行一个整数,表示探测车要到达 bb 所受的最小伤害。

样例

样例 1

输入:

18 4 5 2
8
15

输出:

29

样例 2

输入:

18 4 0 2
8
15

输出:

18

样例 3

输入:

18 10 100 2
8
15

输出:

20

样例 4

输入:

18 4 100 0

输出:

418

样例 5

输入:

65 20 100 3
14
25
33

输出:

172

数据范围与提示

对于所有数据,满足:

  • 1b10121\le b\le 10^{12}
  • 0d1060\le d\le 10^6
  • 0n1050\le n\le 10^5
  • p<b,n<bp<b,n<b

详细子任务附加限制及分值如下表:

子任务 附加限制 分值
1 p106p\le 10^6 并且探测车在离开位置 00 之后,探测车不需要等待 8
2 b1000,p100,n10b\le 1000,p\le 100,n\le 10 5
3 b1000b\le 1000 7
4 p106,n1000p\le 10^6,n\le 1000 15
5 p100p\le 100 20
6 p106p\le 10^6 35
7 无附加限制 10
  • 在第一组子任务中,探测车在位置 00 处开始移动之前可能还需要等待。例如,样例 2,3,42,3,4 属于子任务 11