#2128. 选择排序

选择排序

题目描述

选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每趟找出第 ii 小的元素(也就是 A[i]A[n]A[i] \sim A[n] 中最小的元素),然后将这个元素与数组第 ii 个位置上的元素 A[i]A[i] 交换;在 n1n-1 趟之后序列 AA 变为有序。

示例: 给定数组 A=[3,4,1,5,2]A = [3, 4, 1, 5, 2]

第1趟选择排序,将 A[1],A[3]A[1], A[3] 交换,序列变为 [1,4,3,5,2][1, 4, 3, 5, 2]

第2趟选择排序,将 A[2],A[5]A[2], A[5] 交换,序列变为 [1,2,3,5,4][1, 2, 3, 5, 4]

第3趟选择排序, A[3]A[3] 不变,序列不变。

第4趟选择排序,将 A[4],A[5]A[4], A[5] 交换,序列变为 [1,2,3,4,5][1, 2, 3, 4, 5]

现在给定一个包含 A[1n]A[1 \sim n](保证A是排列,即 1n1 \sim nnn 个数恰好出现一次)和 mm 个询问 q[1,2,,,,,m]q[1, 2, ,,,, m](保证 q[i]<q[i+1]q[i] < q[i + 1]),请你依次模拟输出第 q[i]q[i] 趟之后的序列 AA

输入格式

第一行:2 个整数 nnmm

第二行:nn 个整数 A[1n]A[1 \sim n],保证 AA 是排列。

第三行:mm 个整数 q[1m]q[1 \sim m],保证 q[i]<q[i+1]q[i] < q[i + 1]

输出格式

输出 mm 行,每行包含一个整数,代表第 q[i]q[i] 趟之后的序列 AA

5 4
3 4 1 5 2
1 2 3 4
1 4 3 5 2
1 2 3 5 4
1 2 3 5 4
1 2 3 4 5

数据范围

  • 对于所有数据,均有 $1 \leq n \leq 10^5, 1 \leq m \leq 10, 1 \leq A[i] \leq n, 1 \leq q[i] \leq q[i+1] \leq n$,保证AA是排列。
  • 对于测试组 1~ 8:有 n10n \leq 10
  • 对于测试组 9 ~ 13:有 n2000n \leq 2000
  • 对于测试组 14 ~ 20:有 n105n \leq10^5