logo AlgoBeat OnlineJudge
登录 注册

#150. 【模板】vector

内存限制:256 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: AlgoBeat 官方账号

题目描述

本题为了考察数组的基本操作而设置,包括了数组的输入、输出、查找、插入、删除操作。

给你 个数,根据相关的操作命令对数组进行操作。

数组有下列操作命令:

  • 1 i:代表输出命令, 代表要输出数组的第 个元素。
  • 2 i k:代表插入命令, 表示要在数组第 个元素后插入数字
  • 3 i:代表删除命令, 表示删除第 个数。
  • 4 k:代表查找命令, 是要查找的数。如果查找到,输出第一个查找到的数在数组中的位置;如果找不到,输出 -1

具体解释见样例。

输入格式

第一行一个整数 ,表示数组有 个元素。

第二行为 个正整数,小于

第三行为 ,表示下面有 个命令。

接下来 行,每行一个命令,每行的第一个数表示命令的意义(数据保证命令合法有效)。

输出格式

根据输入的相关命令,输出相应的值(每个输出占一行)。

样例

样例输入

5
1 3 5 7 9
8
1 3
2 2 2
1 3
1 5
3 5
1 5
4 3
4 4

样例输出

5
2
7
9
2
-1

样例解释

1 3    (查询数组第三个元素的值,对应输出 5)
2 2 2  (插入操作,在第 2 个数后插入数字 2)
1 3    (输出查询,输出 2)
1 5    (输出 7)
3 5    (删除第 5 个元素)
1 5    (输出 9,此时还是第 5 个元素)
4 3    (查找 3 在数组中的位置,输出倒数第二行的 2)
4 4    (查找 4 在数组中的位置,输出倒数第一行的 -1)

数据范围与提示