#6888. B. Cardboard Boxes(纸板箱)

B. Cardboard Boxes(纸板箱)

NZIC 2026 Round 1(新西兰信息学竞赛 2024 第一轮)

B. Cardboard Boxes(纸板箱)

输入: 标准输入(stdin) 输出: 标准输出(stdout) 内存限制: 64 MB 时间限制: 1.0 秒

  • problem statement
  • submit
  • submissions

题目描述

Avery 正在把纸板箱堆成一座塔。

Avery 一共有:

NN

个可以使用的纸板箱,每个纸板箱都有一个宽度。

具体来说,第 (i) 个纸板箱的宽度为:

wiw_i

Avery 是一位获奖建筑师,因此知道:

把一个大的东西放在一个小的东西上面,在结构上是不稳固的。

因此,Avery 决定:

塔中的每一个纸板箱,都必须比它上面的那个纸板箱更宽。

这个规则不适用于塔顶的纸板箱,因为它上面没有其他纸板箱。

作为 Avery 的“会编程的朋友”,你需要帮忙编写一个程序,求:

这座塔中最多可以使用多少个纸板箱。


输入格式

第一行包含一个整数:

N

接下来的 (N) 行,每行包含一个整数,表示一个纸板箱的宽度。

更正式地说:

第 (i) 行包含:

wiw_i

输出格式

输出一个整数:

Avery 最多可以在塔中使用多少个纸板箱。


数据范围

1N1000001\le N\le100000 1wi100001\le w_i\le10000

子任务

  • 30% 的分数:

任意两个纸板箱的宽度都不相同。

  • 额外 30% 的分数:
N10N\le10
  • 满分:

没有额外限制。


样例说明

Avery 可以建造一座高度为 3 的纸板箱塔:

  • 把一个宽度为 3 的纸板箱放在宽度为 10 的纸板箱上;
  • 再把宽度为 1 的纸板箱放在最上面。

这样形成:

10
3
1

一共使用:

33

个纸板箱。

剩下的另一个宽度为 3 的纸板箱无法放入塔中,因为如果两个宽度为 3 的箱子相邻,就无法满足:

下面的箱子必须比上面的箱子更宽。


样例输入 1

4
1
3
10
3

样例输出 1

3
测试点编号 N 层级 数据特征 预期输出 设计目的
1 弱数据 单个元素 1 覆盖最小非空规模
2 6 所有元素完全相同 检查重复元素去重
3 10 正常数据 无序排列、多个重复值 5 检查常规去重统计
4 12 边界数据 0、负数及 int 最大/最小值 8 检查整数边界与混合取值
5 30 综合数据 10 种数值多次重复、顺序混乱 10 检查较长输入和密集重复