CF388A Fox and Box Accumulation
题目描述
狐狸 Ciel 的房间里有 $n$ 个盒子。这些盒子的大小和重量都相同,但它们的强度可能不同。第 $i$ 个盒子最多能承受 $x_{i}$ 个盒子叠在它上面(我们称 $x_{i}$ 为该盒子的强度)。
由于所有盒子的大小相同,Ciel 不能在某个盒子上直接放置超过一个盒子。例如,假设 Ciel 有三个盒子:第一个的强度是 2,第二个的强度是 1,第三个的强度也是 1。她不能将第二和第三个盒子同时直接放在第一个盒子上。但她可以把第二个盒子直接放在第一个盒子上,然后把第三个盒子再直接放在第二个盒子上。我们称这样的盒子堆叠为一个“堆”。
Ciel 想把所有盒子都堆成若干个“堆”。每个堆从上到下包含若干个盒子,并且任意一个第 $i$ 个盒子上方最多只能有 $x_{i}$ 个盒子。她最少需要多少个堆才能把所有盒子都用完?
输入格式
第一行包含一个整数 $n$($1 \leq n \leq 100$)。
第二行包含 $n$ 个整数 $x_1, x_2, \ldots, x_n$($0 \leq x_i \leq 100$)。
输出格式
输出一个整数,表示最少需要多少个堆。
说明/提示
样例 1 中,一种最优的方式是建 2 个堆:第一个堆依次放第 1 号盒子和第 3 号盒子(从上到下),第二个堆只放第 2 号盒子。
样例 2 中,可以只建 1 个堆,依次包含第 1、2、3、4、5 号盒子(从上到下)。
由 ChatGPT 5 翻译