CF1400E Clear the Multiset

题目描述

你有一个包含若干整数的多重集合。初始时,该集合包含 $a_1$ 个 $1$,$a_2$ 个 $2$,……,$a_n$ 个 $n$。 你可以进行两种操作: - 选择两个整数 $l$ 和 $r$($l \le r$),然后从集合中各移除一个 $l$、一个 $l+1$、……、一个 $r$。只有当集合中从 $l$ 到 $r$ 的每个数都至少出现一次时,才能进行此操作; - 选择两个整数 $i$ 和 $x$($x \ge 1$),然后从集合中移除 $x$ 个 $i$。只有当集合中 $i$ 至少出现 $x$ 次时,才能进行此操作。 请问,最少需要多少次操作才能将多重集合中的所有元素全部删除?

输入格式

第一行包含一个整数 $n$($1 \le n \le 5000$)。 第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($0 \le a_i \le 10^9$)。

输出格式

输出一个整数,表示最少需要多少次操作才能将多重集合中的所有元素全部删除。

说明/提示

由 ChatGPT 4.1 翻译