#iroha2019day1e. [iroha2019_day1_e]放課後

[iroha2019_day1_e]放課後

问题描述

※“きたむー”是帮助出题的人的名字。另外,“きたむー”的女朋友不是“いろはちゃん”。

“きたむー”是高中竞技编程俱乐部的成员,放学后一直热衷于编程。但最近,据说“きたむー”有了女朋友。

想约会!想约会!想约会!

约会不断侵蚀着他的编程学习时间。你感到危机,担心如果继续这样下去,他的竞赛等级会下降。于是决定帮他管理放学后的日程安排。

你决定考虑以下几点,制定从明天开始的连续 NN 天的日程。

  • “きたむー”每天放学后要么“约会”,要么“竞赛编程”。
  • 如果“きたむー”连续 AA 天没有约会,他会觉得爱不够多而无法行动,所以每 AA 天必须约会一次。
  • 这对情侣在明天起的 NN 天内有 BB 个纪念日,分别在 D1,D2,,DBD_1, D_2, \ldots, D_B 天后进行约会。这些天数两两不同。 另外,假设今天已经有了约会,他的学校没有假日。

你希望最大化“きたむー”进行竞赛编程的天数。

约束条件

  • 所有输入值均为整数。
  • 1N10181 \leq N \leq 10^{18}
  • 1AN1 \leq A \leq N
  • 0Bmin(N,2×105)0 \leq B \leq \min(N, 2 \times 10^5)
  • 1DiN1 \leq D_i \leq N (1iB1 \leq i \leq B)
  • DiDjD_i \neq D_j (1i,jB1 \leq i, j \leq Biji \neq j)
  • 所有输入均为整数

输入

输入以以下格式从标准输入中给出。

NN AA BB D1D_1 D2D_2 \ldots DBD_B

输出

输出“きたむー”能够进行编程学习的最大天数。


输入示例 1

10 4 2
4 6

输出示例 1

7

考虑从明天开始的连续 1010 天的日程,编程不能连续超过 44 天,而且有 22 个纪念日分别在 44 天后和 66 天后。将编程记作 P,约会记作 D,例如,可以安排日程为 PPPDPDPPPD,这样可以让他连续 77 天进行编程。


输入示例 2

10 1 0

输出示例 2

0

太孤独了。


输入示例 3

5 2 5
1 2 3 4 5

输出示例 3

0

纪念日太多了。


输入示例 4

10 5 3
4 3 7

输出示例 4

7

输入示例 5

100 16 11
90 98 88 82 40 16 32 45 87 67 48

输出示例 5

88