#4444. 数组分割与交换
数组分割与交换
数组分割与交换
题目描述
给定一个长度为 n 的整数数组 a,请你完成以下操作:
-
将数组
a分割为两个新数组:- 数组
b包含a中所有的偶数(保持在a中出现的相对顺序) - 数组
c包含a中所有的奇数(保持在a中出现的相对顺序)
- 数组
-
执行
m次交换操作,操作分为以下两种类型:- 若操作格式为
1 x y,表示交换数组b中第x个元素和第y个元素(x和y均为 1 基索引) - 若操作格式为
2 x y,表示交换数组c中第x个元素和第y个元素(x和y均为 1 基索引)
- 若操作格式为
完成所有操作后,请你依次输出数组 b 和数组 c 中的所有元素。
输入格式
第一行包含一个整数 n,表示数组 a 的长度。
第二行包含 n 个整数,分别表示数组 a 的元素。
第三行包含一个整数 m,表示交换操作的次数。
接下来 m 行,每行包含三个整数 op, x, y,表示一次交换操作,含义如题目描述。
输出格式
第一行输出数组 b 中的所有元素,元素之间用空格分隔。
第二行输出数组 c 中的所有元素,元素之间用空格分隔。
样例输入
6
1 2 3 4 5 6
3
1 1 2
2 1 2
1 1 3
样例输出
6 2 4
3 1 5
样例说明
-
初始分割:
- 数组
b(偶数):[2, 4, 6] - 数组
c(奇数):[1, 3, 5]
- 数组
-
执行操作:
- 操作
1 1 2:交换b[1]和b[2],b变为[4, 2, 6] - 操作
2 1 2:交换c[1]和c[2],c变为[3, 1, 5] - 操作
1 1 3:交换b[1]和b[3],b变为[6, 2, 4]
- 操作
-
最终输出:
b数组:6 2 4c数组:3 1 5
数据范围
- 1 ≤ n ≤ 1000
- 数组
a中的元素为整数,范围在 [-1000, 1000] 之间 - 1 ≤ m ≤ 1000
- 对于所有操作,
x和y均为有效的数组索引(即不会超出对应数组的长度范围)