HM225 集合剪枝

HM225 集合剪枝

HM225 集合剪枝

来源: 第 225 集 set容器-插入和删除

难度: 普及-

时间限制: 1s

空间限制: 64MB

题目描述

集合没有头插、尾插、头删、尾删,也不能指定插入位置。插入只用 insert,插入时会自动排序。删除一律用 erase,另有专门的清空接口 clear

erase 有三种常用重载:

  • erase(it):删掉迭代器指向的那一个元素。begin() 指向的是**排序后的第一个**(最小元),不是最先插入的那个。
  • erase(x):按值删除,容器里等于 \(x\) 的元素会被去掉(没有则什么也不做)。
  • erase(beg, end):删掉半开区间。若传入 begin()end(),效果等同于清空。

clear() 也会把集合清空。清空后遍历只会打出换行。

按下列顺序操作一个 set<int>,每一步结束后都打印当前集合:

  1. 把第一段序列依次 insert 进去;
  2. 若集合非空,执行 erase(begin())
  3. 按值 erase(x)
  4. erase(begin(), end()) 清空;
  5. 把第二段序列依次 insert 进去;
  6. 调用 clear() 再清空一次。

打印使用迭代器,元素之间一个空格。

输入格式

第一行一个整数 \(n\)。

第二行 \(n\) 个整数,按给定顺序插入。当 \(n=0\) 时本行可以是空行。

第三行一个整数 \(x\),表示按值删除的目标。

第四行一个整数 \(m\)。

第五行 \(m\) 个整数,将在区间清空之后插入。当 \(m=0\) 时本行可以是空行。

输出格式

共六行,对应上述六步之后的集合。空集合对应的那一行只输出换行。

样例

输入 #1

4
30 20 40 10
30
0

输出 #1

10 20 30 40
20 30 40
20 40

输入 #2

5
10 20 30 40 50
20
3
7 8 7

输出 #2

10 20 30 40 50
20 30 40 50
30 40 50

7 8

说明

\(0 \le n,m \le 1000\),元素与 \(x\) 的绝对值不超过 \(10^9\)。

样例 #1 虽先插入 \(30\),begin() 仍指向排序后的 \(10\)。再按值删掉 \(30\),只剩 \(20\,40\)。随后两种清空都会得到空行。样例 #2 第二段插入 \(7,8,7\),集合去重后为 \(7\,8\),clear 后再变空。

信息

ID
1224
难度
(无)
分类
(无)
标签
(无)
递交数
0
已通过
0
通过率
?
上传者