AT_arc006_3.[ARC006C] 積み重ね
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
高桥君已经长大成人,决定离开父母独自生活。他需要把行李从卡车搬到新家的房间里,但如果把纸箱平铺在地板上,房间就会被纸箱占满,今晚他就无法铺床睡觉了。
因此,他决定不把纸箱一个个分开放,而是把纸箱适当地堆叠成若干堆。然而,每个纸箱都有一定的重量,如果把比下面纸箱更重的纸箱堆在上面,下面的纸箱就会被压坏。
图示:下面的纸箱必须比上面的纸箱重或相等。
现在,按照从卡车搬运的顺序,给出了每个纸箱的重量。请思考一种堆叠方式,使得不会压坏任何纸箱,并且堆叠出的纸箱堆的数量最少。请输出最少需要多少堆纸箱。
输入按以下格式从标准输入给出。
输入格式
输入共 N+1 行。
- 第 1 行是一个整数 N,表示纸箱的数量,1≤N≤50。
- 接下来的 N 行,第 i+1 行给出第 i 个搬运的纸箱的重量 wi,1≤wi≤100,000。
输出格式
输出一行,表示最少需要的纸箱堆的数量。最后请输出换行符。
说明/提示
- 例如输入:
5
4
3
1
2
1
输出:
2
-
按照示例中的顺序堆叠,可以形成 2 堆纸箱。
-
不能将第 3 个纸箱后面的重量为 2 的纸箱堆在它上面,因此无法只用 1 堆,最少为 2 堆。
-
例如输入:
7
93
249
150
958
442
391
25
输出:
3
-
如图所示,可以堆成 3 堆。
-
说明:图中的 225 应为 25,敬请谅解。
-
例如输入:
4
100
100
100
100
输出:
1
-
相同重量的纸箱可以堆叠,因此只需 1 堆。
-
例如输入:
6
5
10
15
20
25
30
输出:
6
-
没有任何纸箱可以堆在前面搬运的纸箱上,因此每个纸箱都单独成堆,最少为 6 堆。
-
例如输入:
15
3
1
4
1
5
9
2
6
5
3
5
8
9
7
9
输出:
6
- 如图所示,这样堆叠时堆的数量最少。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?