#12. C2-文物修复(fix)

C2-文物修复(fix)

C2-文物修复(fix)

(似乎要用文件流输入输出)

	freopen("fix.in","r",stdin);
	freopen("fix.out","w",stdout);

题目背景

Lsxszc灵感枯竭了 \dots

于是他决定去寻求教练kkkw的帮助,一通交流后,他了解到kkkw正忙碌于文物修复的工作,为了让kkkw腾出手来出题,Lsxszc决定去帮kkkw完成文物修复的任务。

在kkkw的工作室里,存放着 NN 件待修复的珍贵文物,每件文物都因受损程度不同,标注着对应的修复难度评分 DiD_i。 要成功修复一件文物,修复工具熟练度必须至少达到这文物的难度评分——可刚接手任务时,工具熟练度还处于初始的 00 分状态,想要完成任务,需要规划每天的修复节奏。

题目描述

Lsxszc决定完成所有任务!!!!!!!!!!

每天清晨,Lsxszc必须选择以下操作之一:

  • “工具校准”:花费时间仔细推测使用修复工具,让工具熟练度直接提升 xx
  • “工具保养”:简单清洁工具以延长使用寿命,但工具熟练度会随之降低 xx 分(熟练度甚至可能变成负数)。

到了下午,Lsxszc可以最多挑选一个未修复的文物进行修复。只有熟练度 Di\ge D_i 的时候才可以选择 ii 的文物进行修复。当然他也可以睡觉啥也不干。

因为Lsxszc要等待kkkw出题,所以并不在意修复完所有文物的时间。值得注意的是,kkkw的工具价值 10910^9 美刀,所以Lsxszc为了不损坏工具,希望可以尽可能减少“工具校准”的次数。

请你帮他规划好工具校准、保养和文物修复的顺序,求出修复所有文物所需的最少 “工具校准” 次数。

输入格式

N  xN \ \ x

D1DND_1 \dots D_N

输出格式

一行一个整数,表示修复所有文物所需的最少 “工具校准” 次数。

输入输出样例 #1

输入 #1

5 2
5 3 7 1 3

输出 #1

4

输入输出样例 #2

输入 #2

10 1
8 5 1 3 6 9 5 4 2 2

输出 #2

9

说明/提示

数据范围:

对于 10%10\% 的数据:1n101 \le n \le 10

对于 60%60\% 的数据:1n1031 \le n \le 10^3

对于 100%100\% 的数据:1n,x,Di1051 \le n, x, D_i \le 10^5

后记:

Lsxszc:kkkw出完了吗[期待]?

kkkw:出好了。

Lsxszc:这么快?(其实完成 10510^5 个文物修复工作至少要 10510^5 天)在哪呢?

kkkw:抬头。

Lsxszc:?