HM199 货架量尺

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
通过率
?
上传者