#P0816. 双通道入场
双通道入场
题目描述
训练营门口有两条入场通道,分别记为 A 通道和 B 通道。
每位同学手里都有一个入场号码。为了让现场秩序更顺畅,老师已经提前把两条通道里的同学都按号码从小到大排好了队。
现在要把两条通道合并成一条入场队伍。合并时只能从每条通道的队首选择同学:
- 如果两个队首同学的号码不同,号码较小的同学先进入;
- 如果两个队首同学的号码相同,A 通道的同学先进入;
- 如果某一条通道已经没有同学了,就让另一条通道剩下的同学按原顺序依次进入。
请你输出最终的入场顺序。
输入格式
第一行输入两个整数 n 和 m,表示 A 通道和 B 通道的人数。
第二行输入 n 个整数,表示 A 通道中同学的入场号码。
第三行输入 m 个整数,表示 B 通道中同学的入场号码。
输入保证两条通道中的号码都已经按从小到大的顺序排列。
输出格式
输出一行,共 n + m 个整数,表示最终的入场顺序。
相邻两个整数之间用一个空格隔开。
样例
5 4
1 3 3 8 10
2 3 6 9
1 2 3 3 3 6 8 9 10
样例说明
一开始 A 通道队首是 1,B 通道队首是 2,所以 1 先进入。
之后比较 3 和 2,所以 2 进入。
当两个队首都为 3 时,按规则先让 A 通道的 3 进入;接着 A 通道队首仍为 3,再和 B 通道的 3 比较,仍然先让 A 通道进入;最后 B 通道的 3 再进入。
继续按照规则合并,最终顺序为 1 2 3 3 3 6 8 9 10。
数据范围
-
1 <= n, m <= 20000001 <= 入场号码 <= 1000000000- 两条通道中的号码均为非递减顺序