#926. 选择排序
选择排序
Description
选择排序(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] (保证 A 是排列,即 1∼n 每个数恰好出现一次)和 m 个询问q[1,2,…,m](保证 q[i]<q[i+1]),请你依次输出第 q[i] 趟之后的序 列 A。
Format
Input
输入格式 第一行2个整数 n,m 第二行 n 个整数 A[1∼n],保证 A 是排列 第三行 m个整数 q[1∼m],保证 q[i]<q[i+1]
Output
输出格式 输出 m 行,第 i 行包含 n 个整数代表第 q[i] 趟之后的序列A
Samples
5 4
3 4 1 5 2
1 2 3 4
```output1
1 4 3 5 2
1 2 3 5 4
1 2 3 5 4
1 2 3 4 5
```input2
6 3
6 4 2 3 1 5
1 3 5
```output2
1 4 2 3 6 5
1 2 3 4 6 5
1 2 3 4 5 6
# Limitation
提示
对于所有数据,满足 1≤n≤〖10〗^5,1≤m≤10,1≤A[i]≤n,1≤q[i]<q[i+1]<n,保证A是排列。
对于测试点1~8:n≤10
对于测试点9~13:n≤2000
对于测试点14~20:n≤〖10〗^5