#P6633. 「BalticOI 2023」Tycho

「BalticOI 2023」Tycho

题目描述

题目译自 BalticOI 2023 Day1「Tycho

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

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

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

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

例子

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

samplesetup-1.png

假设脉冲星的周期为 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 值来说,这种情况都比较好。两种情况如下图所示。

sample1_2-1.png

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

sample3-1.png

输入格式

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

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

输出格式

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

18 4 5 2
8
15

29

18 4 0 2
8
15

18

18 10 100 2
8
15

20

18 4 100 0

418

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

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

子任务 附加限制 分值
11 p106p\le 10^6 并且探测车在离开位置 00 之后,探测车不需要等待 88
22 b1000,p100,n10b\le 1000,p\le 100,n\le 10 55
33 b1000b\le 1000 77
44 p106,n1000p\le 10^6,n\le 1000 1515
55 p100p\le 100 2020
66 p106p\le 10^6 3535
77 无附加限制 1010

* 在第一组子任务中,探测车在位置 00 处开始移动之前可能还需要等待。例如,样例 2,3,42,3,4 属于子任务 11