AT_abc449_e [ABC449E] A += v
题目描述
给定整数 $N, M$ 和一个长度为 $N$ 的整数序列 $A=(A_1,A_2,\ldots,A_N)$,序列中每个元素都在 $1$ 到 $M$ 之间(包含 $1$ 和 $M$)。
对这个整数序列 $A$ 重复执行如下操作 $10^{100}$ 次:
- 记 $v$ 为 $1$ 到 $M$ 中,在 $A$ 中出现次数最少的整数。如果存在多个这样的 $v$,取最小的那个。然后将 $v$ 加到 $A$ 的末尾。
有 $Q$ 个询问。第 $i$ 个询问给定整数 $X_i$,请你在执行操作 $10^{100}$ 次之后,输出 $A_{X_i}$ 的值。
输入格式
输入从标准输入给出,格式如下:
> $N$ $M$
> $A_1$ $A_2$ $\ldots$ $A_N$
> $Q$
> $X_1$
> $X_2$
> $\vdots$
> $X_Q$
输出格式
输出 $Q$ 行。
第 $i$ 行输出第 $i$ 个询问的答案。
说明/提示
### 样例解释 1
初始时,$A=(1,1,2)$。每次操作后,$A$ 的变化如下:
- 第一次操作:$A$ 中 $1,2,3$ 的出现次数分别为 $2,1,0$,所以 $v=3$,将 $v$ 加入 $A$ 末尾,$A=(1,1,2,3)$。
- 第二次操作:$A$ 中 $1,2,3$ 的出现次数分别为 $2,1,1$,所以 $v=2$,将 $v$ 加入 $A$ 末尾,$A=(1,1,2,3,2)$。
- 第三次操作:$A$ 中 $1,2,3$ 的出现次数分别为 $2,2,1$,所以 $v=3$,将 $v$ 加入 $A$ 末尾,$A=(1,1,2,3,2,3)$。
- $\vdots$
重复很多次后,$A$ 变为 $A=(1,1,2,3,2,3,1,2,\ldots)$。
### 约束条件
- $1\le N,M\le 5\times 10^5$
- $1\le A_i \le M$
- $1\le Q\le 2\times 10^5$
- $1\le X_i \le 10^{18}$
- 所有输入值均为整数。
由 ChatGPT 5 翻译