HM199 货架量尺
HM199 货架量尺
来源: 第 199 集 vector容器-容量和大小
难度: 普及-
时间限制: 1s
空间限制: 64MB
题目描述
动态数组同时维护两套尺度,并允许重新指定长度:
empty():没有元素时返回真,否则返回假。size():当前元素个数,也就是大小。capacity():已经预留下的容量。容量**永远大于等于**大小,不会小于大小。往里继续插满后,实现可能再动态扩一截。resize(m):把大小改成 \(m\)。若 \(m\) 比原来长,多出来的位置**默认填 \(0\);重载版本resize(m, w)可以用指定值填充新位置。若 \(m\) 比原来短,多出来的尾部元素会被删掉**。
不同实现里具体容量数字可能不同,本题**不要求输出容量的具体值**,只判断「容量是否不小于大小」。
先把输入序列尾插入货架,输出是否为空、当前大小、容量是否合法;再依次做三次 resize:先按默认填 \(0\) 改长度,再按指定填充值改长度,最后再改一次长度(常用于截短)。每次改完都用迭代器打印整座货架。
输入格式
第一行一个整数 \(n\)。
第二行 \(n\) 个整数 \(a_i\)。当 \(n=0\) 时本行可以是空行,货架一开始就是空的。
第三行一个整数 \(m_1\),表示 resize(m1)(默认填 \(0\))。
第四行两个整数 \(m_2\)、\(w\),表示 resize(m2, w)。
第五行一个整数 \(m_3\),表示 resize(m3)。
输出格式
第一行三个整数,用空格隔开:
empty()为真输出1,否则0- 当前
size() - 若
capacity() >= size()输出1,否则0
第二行:resize(m1) 之后的全部元素,空格分隔,行末无多余空格。
第三行:resize(m2, w) 之后的全部元素。
第四行:resize(m3) 之后的全部元素。
空货架对应行只输出换行。
样例
输入 #1
10
0 1 2 3 4 5 6 7 8 9
15
20 100
5
输出 #1
0 10 1
0 1 2 3 4 5 6 7 8 9 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 0 0 0 0 0 100 100 100 100 100
0 1 2 3 4
输入 #2
0
8
12 100
3
输出 #2
1 0 1
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 100 100 100 100
0 0 0
说明
\(0 \le n \le 1000\),\(|a_i|,|w| \le 10^9\),\(0 \le m_1,m_2,m_3 \le 2000\)。
- 样例 #1:已有 \(10\) 个数,货架非空;先加长到 \(15\) 默认补 \(0\),再加长到 \(20\) 并用 \(100\) 填新位置,最后截到前 \(5\) 个。
- 样例 #2:空货架
empty为真、大小为 \(0\),容量仍应满足 \(\ge\) 大小。 - 不要输出容量的具体数字,不同编译器扩容策略不一样。
resize到相同或更短时,指定填充值不会改写已经存在的元素。
信息
- ID
- 1198
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者