CF380A Sereja and Prefixes
题目描述
Sereja 非常喜欢数列。因此,他决定按照某种算法为自己构造一个新的数列。
Sereja 取来一张白纸。随后他开始分 $m$ 个阶段依次写出这个数列。每一次操作,他要么在序列末尾添加一个新数,要么把当前序列的前 $l$ 个元素整体复制 $c$ 次添加到序列末尾。更正式地说,如果我们用 $a_{1},a_{2},...,a_{n}$ 表示当前序列,那么执行上述操作后,序列会变成 $a_{1},a_{2},...,a_{n}[,a_{1},a_{2},...,a_{l}]$(方括号中的这一块会被重复 $c$ 次)。
一天过去,Sereja 完成了这个序列。他很想知道其中一些元素的值。请你帮助 Sereja 解答。
输入格式
第一行包含一个整数 $m$ $ (1 \leq m \leq 10^{5}) $,表示构造序列的阶段数。
接下来的 $m$ 行按顺序描述每个阶段。每行的第一个数是阶段的类型(1 或 2)。类型 1 表示在序列末尾添加一个数,这时该行还包含一个整数 $x_{i}$ $ (1 \leq x_{i} \leq 10^{5}) $,表示要添加的数;类型 2 表示复制长度为 $l_{i}$ 的前缀 $c_{i}$ 次并拼接到末尾,这时该行还包含两个整数 $l_{i},c_{i}$ $ (1 \leq l_{i} \leq 10^{5}, 1 \leq c_{i} \leq 10^{4}) $,表示前缀长度和复制次数。保证每次复制前缀时 $l_{i}$ 不会大于当前序列长度。
接下来一行包含一个整数 $n$ $ (1 \leq n \leq 10^{5}) $,表示 Sereja 感兴趣的元素个数。下一行包含 $n$ 个严格递增的整数,表示 Sereja 感兴趣的元素在最终序列中的位置。保证所有数都严格大于 0 且不超过最终序列的长度。注意:最终序列的位置从 $1$ 开始编号。
输出格式
按输入顺序输出 Sereja 感兴趣的那些元素的值,每个数占一行。
说明/提示
由 ChatGPT 5 翻译