Type: Default 1000ms 256MiB

vector模板题

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

现有一个动态数组(Vector)容器,支持以下操作:插入元素、删除元素、查询元素和修改元素。你需要实现这个动态数组,并处理可能的边界情况。具体规则如下:

  1. 插入操作:在数组末尾添加元素。
  2. 删除操作:删除指定位置的元素,若位置不合法则操作无效。
  3. 查询操作:获取指定位置的元素,若位置不合法则返回特殊值。
  4. 修改操作:修改指定位置的元素值,若位置不合法则操作无效。

操作完成后,需输出最终数组的元素个数及所有元素。

输入格式

  • 第一行输入一个整数q1 ≤ q ≤ 1000000),表示操作的总次数。
  • 接下来q行,每行表示一次操作,格式如下:
    • 插入操作1 x(在数组末尾添加元素x)。
    • 删除操作2 pos(删除位置pos的元素,位置从0开始)。
    • 查询操作3 pos(查询位置pos的元素)。
    • 修改操作4 pos x(将位置pos的元素修改为x)。

输出格式

  • 对于每次查询操作(操作3),输出一行整数,表示查询结果。若位置不合法,输出-1
  • 所有操作完成后,输出两行:
    • 第一行:一个整数,表示数组的元素个数。
    • 第二行:数组的所有元素,按顺序输出,元素之间用空格分隔。若数组为空,输出空行。

样例 1 输入

5
1 10
1 20
3 1
2 0
3 0

样例 1 输出

20
20
1
20

样例说明

  1. 插入操作:依次插入10和20,数组变为[10, 20]
  2. 查询操作:查询位置1的元素,返回20。
  3. 删除操作:删除位置0的元素,数组变为[20]
  4. 查询操作:查询位置0的元素,返回20。
  5. 最终输出:数组元素个数为1,元素为20。

测试点约束

  • 操作次数 q ≤ 1000000
  • 元素值x的取值范围为int(-2^31 ~ 2^31-1)。
  • 所有操作的位置pos均为非负整数。
  • 除了操作3,如果操作不合法则忽略

7.25造数据

Not Attended
Status
Done
Rule
IOI
Problem
13
Start at
2025-7-25 18:00
End at
2025-7-25 21:00
Duration
3 hour(s)
Host
Partic.
9