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

[JAG 2025 Summer Camp #2] All Copy Paste

说明

你有一个长度为 NN 的序列 A=(A1,A2,,AN)A = (A_1, A_2, \ldots, A_N),初始时对于所有 ii1iN1 \leq i \leq N)有 Ai=iA_i = i。现在有 QQ 次查询。在第 qq 次查询中,会给出一个整数 xqx_q1xqA1 \leq x_q \leq |A|),你需要将 AA 替换为

$$(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| 表示 AA 的当前长度。换句话说,你在序列 AA 的前 xqx_q 个元素之后,插入整个序列 AA 的一个副本。

按顺序处理完所有 QQ 次查询后,输出最终序列 AA 的前 MM 个元素。

输入格式

输入按以下格式给出。

$$\begin{aligned} & N \ M \ Q \\ & x_1 \\ & x_2 \\ & \vdots \\ & x_Q \end{aligned}$$

第一行包含三个整数 NNMMQQ1N1061 \leq N \leq 10^61Mmin(106,N×2Q)1 \leq M \leq \min(10^6, N \times 2^Q)1Q1061 \leq Q \leq 10^6)。接下来的 QQ 行,每行包含一个整数 xqx_q1xqmin(1012,N×2q1)1 \leq x_q \leq \min(10^{12}, N \times 2^{q-1})),表示第 qq 次查询的参数。

输出格式

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

5 9 2
2
6
1 2 1 2 3 4 1 2 1
200000 10 10
234
54
2346
374
6
24
547
65
20000000
74
1 2 3 4 5 6 1 2 3 4

提示

翻译由 DeepSeek V3.2 完成