AT_joi2020_yo1a_c マージ (Merge)
题目描述
给定一个长度为 $N$ 的正整数序列 $A=(A_1,\ A_2,\ \ldots,\ A_N)$ 和一个长度为 $M$ 的正整数序列 $B=(B_1,\ B_2,\ \ldots,\ B_M)$。这两个序列都是广义单调递增序列。也就是说,满足 $A_1\leq A_2\leq \cdots\leq A_N$,$B_1\leq B_2\leq \cdots\leq B_M$。
使用如下算法,从这两个序列生成一个长度为 $N+M$ 的正整数序列 $C=(C_1,\ C_2,\ \ldots,\ C_{N+M})$。
1. 初始时 $C$ 为空。
2. 如果 $A$ 和 $B$ 都为空,则算法结束。
3. 如果 $A$ 或 $B$ 其中之一为空,则令 $t$ 为非空的那个序列。如果都不为空,则取首元素较小的序列为 $t$。如果 $A$ 和 $B$ 的首元素相等,则取 $A$ 作为 $t$。
4. 将 $t$ 的首元素添加到 $C$ 的末尾。
5. 从 $t$ 中删除首元素。
6. 返回步骤 2。
给定广义单调递增的正整数序列 $A$ 和 $B$,请编写程序输出按照上述算法生成的正整数序列 $C$。
输入格式
输入通过标准输入给出,格式如下:
> $N$ $M$ $A_1$ $A_2$ $\cdots$ $A_N$ $B_1$ $B_2$ $\cdots$ $B_M$
输出格式
请输出 $N+M$ 行。
第 $k$ 行($1\leq k\leq N+M$)输出 $C_k$。
说明/提示
### 限制条件
- $1\leq N\leq 500$。
- $1\leq M\leq 500$。
- $1\leq A_1\leq A_2\leq \cdots\leq A_N\leq 2000$。
- $1\leq B_1\leq B_2\leq \cdots\leq B_M\leq 2000$。
### 样例解释 1
在执行算法前,$A=(1,2),\ B=(2)$。数列 $C$ 的生成过程如下:
- 数列 $A$ 的首元素为 $1$,数列 $B$ 的首元素为 $2$,因此将 $A$ 的首元素添加到 $C$ 并从 $A$ 中删除。
- 数列 $A$ 的首元素为 $2$,数列 $B$ 的首元素为 $2$,因此将 $A$ 的首元素添加到 $C$ 并从 $A$ 中删除。
- 数列 $A$ 已空,因此将 $B$ 的首元素添加到 $C$ 并从 $B$ 中删除。
- 数列 $A$ 和 $B$ 都为空,算法结束。
算法结束后,数列 $C=(1,2,2)$。
由 ChatGPT 4.1 翻译