#YC225. 序列动态操作数组
序列动态操作数组
序列动态操作数组
题目描述
给定一个初始为空的序列 ,需要处理 个按照给定顺序输入的查询。查询分为两种类型:
查询类型
-
追加操作
1 x:将整数 添加到序列 的末尾 -
查找操作
2 k:找出距离序列末尾第 个元素的值(即倒数第 个元素)
- 第一类查询操作中,新增加的整数 满足
- 第二类操作中,保证不超过当前的长度.
输入格式
所有的数据输入都按以下标准格式:
每个查询为下列两种情况之一:
输出格式
对于每个第二类查询操作,输出数组当中倒数第个数的值
样例
5
1 20
1 30
2 1
1 40
2 3
30
20
序列操作示例1详解
初始状态
序列 初始为空:
操作流程与结果
| 操作序号 | 操作类型 | 具体操作 | 序列状态变化 | 查询结果说明 |
|---|---|---|---|---|
| 1 | 1 20 |
追加元素20 | —— | |
| 2 | 1 30 |
追加元素30 | ||
| 3 | 2 1 |
查询倒数第1个元素 | 当前序列 | 30(末尾第1个元素是30) |
| 4 | 1 40 |
追加元素40 | —— | |
| 5 | 2 3 |
查询倒数第3个元素 | 当前序列 | 20(末尾第3个元素即首元素20) |
关键说明
-
操作类型:
1 x表示追加操作,元素添加到序列末尾2 k表示反向查询操作, 从末尾开始计数
-
反向索引规则:
- 当 时:
- 倒数第1个元素是
- 倒数第k个元素是
- 当 时:
-
本示例核心逻辑:
- 第五次查询时,,查询倒数第3个元素即
Related
In following contests:
In following homework: