#B1413. 小朋友编号换位查询
小朋友编号换位查询
【题目描述】
有 个小朋友站成一排,编号为 到 。
最开始,第 个小朋友站在位置 。
题目保证 到 的每个位置都恰好站了一个小朋友。
接下来发生 件事情,每件事情为以下三种之一:
- 交换某两个小朋友当前站的位置。
- 询问某个小朋友当前站在第几个位置。
- 询问某个位置上当前站的是哪个小朋友。
【输入描述】
第一行输入两个整数 ,表示小朋友数量和事情数量。
第二行输入 个整数 ,其中 表示第 个小朋友初始站在的位置。
接下来 行,每行表示一件事情,格式为以下三种之一:
1 x y:交换小朋友 和小朋友 当前站的位置。2 x:询问小朋友 当前站在第几个位置。3 p:询问第 个位置上当前站的是哪个小朋友。
保证:
- ;
- ;
- 是 到 的一个排列;
- 对于操作
1 x y,保证 ; - 对于操作
2 x,保证 ; - 对于操作
3 p,保证 。
【输出描述】
对于每个询问操作输出一行,表示对应答案。
【样例 1】
【样例 1 输入】
5 6
2 4 1 5 3
2 3
3 4
1 2 5
2 5
3 4
2 2
【样例 1 输出】
1
2
4
5
3
【样例 1 解释】
初始时小朋友 在位置 ,位置 上是小朋友 。
交换小朋友 和 后,小朋友 到位置 ,小朋友 到位置 。
【样例 2】
【样例 2 输入】
4 7
1 2 3 4
3 1
1 1 4
2 1
3 1
1 2 3
2 3
3 2
【样例 2 输出】
1
4
4
2
3
【数据规模与约定】
| 测试点编号 | 分数 | 特殊性质 |
|---|---|---|
1 ~ 8 |
40 | |
9 ~ 10 |
60 |