1127. C++ 语法练习之 vector

这道题目甚至比前面一道还要再无聊一些。

你需要维护一个序列,并实现下面的操作:

  • 操作 1:如果序列不为空删除序列最后一个数,否则保持序列不变。
  • 操作 2:给定一个数 i,在序列末尾插入一个数 i
  • 操作 3:输出序列的长度。
  • 操作 4:给定两个数 i,j,将第 i 个数的值设置为 j,如果序列没有 i 个数保持序列不变。
  • 操作 5:输出序列最后一个数的值,或者报告序列为空。
  • 操作 6:清空整个序列。

序列初始状态为空。

请注意本题输入量可能较大。

输入

输入包括若干行,每行对应一个操作,以 EOF 作为结束标志,保证操作的数量不超过 10^6

对于任意一行,输入是下面三种情况的其中一种,其中 a 是操作的序号:

  • 只包含一个整数 a \ (a=1,3,5,6),表示执行对应操作。
  • 包含两个用空格间隔的整数 a,i \ (a=2,1 \leq i \leq 10^5),表示执行操作 2
  • 包括三个用空格间隔的整数 a,i,j \ (a=4,1 \leq i,j \leq 10^5),表示执行操作 4

输出

若执行操作 1,2,4,6,你不需要输出任何东西。

若执行操作 3,5,每个操作输出一行:

  • 若执行操作 3,输出一个整数,表示答案。
  • 若执行操作 5,若序列为空输出 -1,否则输出一个整数,表示答案。

样例

标准输入 复制文本
6
3
4 996 998
2 1
2 2
5
1
标准输出 复制文本
0
2
登录以提交代码。
单点时限 5 秒
内存限制 128 MB
提交 392
通过 116