HM198 货架后期赋值

HM198 货架后期赋值

HM198 货架后期赋值

来源: 第 198 集 vector容器-赋值操作

难度: 普及-

时间限制: 1s

空间限制: 64MB

题目描述

动态数组创建完成之后,还可以再给已经存在的货架赋值。赋值和构造不是一回事:构造写在对象诞生的那一行,赋值发生在对象已经存在之后。

请先把输入序列依次尾插入货架 v1,再按下面三种方式分别得到 v2v3v4

  1. 重载的赋值运算符 =v2 = v1,把整座货架拷过去。这是最直接的写法。
  2. 成员函数 assign 提供一对迭代器。区间是左闭右开:会取到起始迭代器指向的元素,**不会取到**结束迭代器指向的元素。
  3. 仍用 assign,按「\(k\) 个相同货物」写入,即 assign(k, x)。这和构造时「一开始就填 \(k\) 个 \(x\)」参数长得像,但写的位置不同,属于后期赋值。

打印时用迭代器从 begin 走到 end,元素之间用单个空格分隔。

输入格式

第一行一个整数 \(n\),表示 v1 的货物件数。

第二行 \(n\) 个整数 \(a_i\),依次尾插入 v1

第三行两个整数 \(L\)、\(R\),表示区间赋值使用的半开区间:起始迭代器为 begin()+L,结束迭代器为 begin()+R

第四行两个整数 \(k\)、\(x\),表示 assign(k, x)

输出格式

共四行,每行用单个空格分隔该货架上的全部整数,行末无多余空格:

  1. v1(原始货架)
  2. v2v2 = v1
  3. v3assign 半开区间 \([L,R)\))
  4. v4(\(k\) 个 \(x\))

某座货架为空时,该行只输出换行。

样例

输入 #1

10
0 1 2 3 4 5 6 7 8 9
0 10
10 100

输出 #1

0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
100 100 100 100 100 100 100 100 100 100

输入 #2

5
1 2 3 4 5
1 4
3 7

输出 #2

1 2 3 4 5
1 2 3 4 5
2 3 4
7 7 7

说明

\(1 \le n \le 1000\),\(|a_i|,|x| \le 10^9\),\(0 \le L \le R \le n\),\(0 \le k \le 1000\)。

  • =assign 都是容器已经存在之后的赋值。
  • 样例 #2 的 \([1,4)\) 只取下标 \(1,2,3\),取不到下标 \(4\)。

信息

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