该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每趟找出第 i 小的元素(也就是 A[i∼n] 中最小的元素,若有多个,选择最靠前的),然后将这个元素与数组第 i 个位置上的元素 A[i] 交换;在 n−1 趟之后序列 A 变为升序。
例如 A=[3,4,1,5,2]:
- 第 1 趟交换 A[1],A[3],序列变为 [1,4,3,5,2];
- 第 2 趟交换 A[2],A[5],序列变为 [1,2,3,5,4];
- 第 3 趟交换 A[3],A[3],序列不变;
- 第 4 趟交换 A[4],A[5],序列变为 [1,2,3,4,5]。
现在给定初始序列 A[1∼n] 和 m 个询问 q[1,2,…,m] 。请你依次输出第 q[i] 趟之后的序列 A。
输入描述
第一行有 2 个正整数 n,m。
第二行有 n 个正整数 A[1∼n],保证序列 A 是排列,即 1∼n 每个数恰好出现一次。
第三行有 m 个正整数 q[1∼m],保证序列 q 单调递增,即对 1≤i<m , 有 q[i]<q[i+1]。
输出描述
输出 m 行,第 i 行包含 n 个整数,代表第 q[i] 趟之后的序列 A。
输入样例1
5 4
3 4 1 5 2
1 2 3 4
输出样例1
1 4 3 5 2
1 2 3 5 4
1 2 3 5 4
1 2 3 4 5
输入样例2
6 3
6 4 2 3 1 5
1 3 5
输出样例2
1 4 2 3 6 5
1 2 3 4 6 5
1 2 3 4 5 6
数据范围
测试点编号 |
n≤ |
1∼8 |
10 |
9∼13 |
2000 |
14∼20 |
105 |
对于所有测试点:1≤n≤105, 1≤m≤10, 1≤A[i]≤n, 1≤q[i]<q[i+1]≤n。