P15776 [JAG 2025 Summer Camp #2] All Copy Paste

题目描述

你有一个长度为 $N$ 的序列 $A = (A_1, A_2, \ldots, A_N)$,初始时对于所有 $i$($1 \leq i \leq N$)有 $A_i = i$。现在有 $Q$ 次查询。在第 $q$ 次查询中,会给出一个整数 $x_q$($1 \leq x_q \leq |A|$),你需要将 $A$ 替换为 $$ (A_1, A_2, \ldots, A_{x_q}, A_1, A_2, \ldots, A_{|A|}, A_{x_q + 1}, A_{x_q + 2}, \ldots, A_{|A|}), $$ 其中 $|A|$ 表示 $A$ 的当前长度。换句话说,你在序列 $A$ 的前 $x_q$ 个元素之后,插入整个序列 $A$ 的一个副本。 按顺序处理完所有 $Q$ 次查询后,输出最终序列 $A$ 的前 $M$ 个元素。

输入格式

输入按以下格式给出。 $$ \begin{aligned} & N \ M \ Q \\ & x_1 \\ & x_2 \\ & \vdots \\ & x_Q \end{aligned} $$ 第一行包含三个整数 $N$、$M$ 和 $Q$($1 \leq N \leq 10^6$,$1 \leq M \leq \min(10^6, N \times 2^Q)$,$1 \leq Q \leq 10^6$)。接下来的 $Q$ 行,每行包含一个整数 $x_q$($1 \leq x_q \leq \min(10^{12}, N \times 2^{q-1})$),表示第 $q$ 次查询的参数。

输出格式

在一行中输出 $M$ 个整数 $A_1, A_2, \ldots, A_M$,即应用所有查询后最终序列的前 $M$ 个元素,以空格分隔。

说明/提示

翻译由 DeepSeek V3.2 完成