‹ 上一题 下一题 ›

g5-08233. 三路归并 未做

1000 ms 256 MB 测试点 10 通过率 100% GESP-55级·STLpriority_queue

题目描述

三条升序序列(后一个数不小于前一个数),每条至多 个非负整数(数值可达 ,用 long long),请把它们合并成一条升序序列输出。

三路归并的经典做法:把每条序列的队首都放进一个小根堆——为了知道弹出的数来自哪条序列,把「值」和「队号」编进同一个数:值乘 加上队号(、、)。每次弹出全局最小的,再把它所在序列的下一个补进堆。

输入格式

第一行三个整数 、、()。

第二、三、四行分别是三条序列,各含 、、 个整数,均升序,数值 满足 。

输出格式

一行 个整数:合并后的升序序列,用空格分隔。

样例

输入:

3 3 3
1 4 7
2 5 8
3 6 9

输出:

1 2 3 4 5 6 7 8 9

三个队首 1、2、3 里 1 先出,接着 4、2、3 里 2 出……三路轮流出,全程有序。

数据范围

,。提示:归并要「每一小步都全局比」——先把一条整条倒完再比剩下两条,遇到三条交织的序列必错。

输入
输出

            
答案