CF1547C.Pair Programming
普及-
通过率:0%
时间限制:2.00s
内存限制:512MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Monocarp and Polycarp are learning new programming techniques. Now they decided to try pair programming.
It's known that they have worked together on the same file for n+m minutes. Every minute exactly one of them made one change to the file. Before they started, there were already k lines written in the file.
Every minute exactly one of them does one of two actions: adds a new line to the end of the file or changes one of its lines.
Monocarp worked in total for n minutes and performed the sequence of actions [a1,a2,…,an]. If ai=0, then he adds a new line to the end of the file. If ai>0, then he changes the line with the number ai. Monocarp performed actions strictly in this order: a1, then a2, ..., an.
Polycarp worked in total for m minutes and performed the sequence of actions [b1,b2,…,bm]. If bj=0, then he adds a new line to the end of the file. If bj>0, then he changes the line with the number bj. Polycarp performed actions strictly in this order: b1, then b2, ..., bm.
Restore their common sequence of actions of length n+m such that all actions would be correct — there should be no changes to lines that do not yet exist. Keep in mind that in the common sequence Monocarp's actions should form the subsequence [a1,a2,…,an] and Polycarp's — subsequence [b1,b2,…,bm]. They can replace each other at the computer any number of times.
Let's look at an example. Suppose k=3. Monocarp first changed the line with the number 2 and then added a new line (thus, n=2,a=[2,0]). Polycarp first added a new line and then changed the line with the number 5 (thus, m=2,b=[0,5]).
Since the initial length of the file was 3, in order for Polycarp to change line number 5 two new lines must be added beforehand. Examples of correct sequences of changes, in this case, would be [0,2,0,5] and [2,0,0,5]. Changes [0,0,5,2] (wrong order of actions) and [0,5,2,0] (line 5 cannot be edited yet) are not correct.
Monocarp 和 Polycarp 正在学习新的编程技巧。现在他们决定尝试结对编程。
已知他们共同在同一文件上工作了 n+m 分钟。每分钟恰好有其中一人对文件执行一次修改操作。在开始之前,文件中已有 k 行内容。
每分钟恰好有一人执行以下两种操作之一:在文件末尾添加一行,或修改文件中的某一行。
Monocarp 总共工作了 n 分钟,执行的操作序列为 [a1,a2,…,an]。若 ai=0,表示他在文件末尾添加一行;若 ai>0,表示他修改第 ai 行。Monocarp 严格按此顺序执行操作:先 a1,再 a2,……,最后 an。
Polycarp 总共工作了 m 分钟,执行的操作序列为 [b1,b2,…,bm]。若 bj=0,表示他在文件末尾添加一行;若 bj>0,表示他修改第 bj 行。Polycarp 也严格按此顺序执行操作:先 b1,再 b2,……,最后 bm。
请还原一个长度为 n+m 的共同操作序列,使得所有操作均合法——即不允许修改尚不存在的行。注意,在该共同序列中,Monocarp 的操作必须构成子序列 [a1,a2,…,an],而 Polycarp 的操作必须构成子序列 [b1,b2,…,bm]。两人可在任意时刻交替使用计算机,切换次数不限。
我们来看一个例子。设 k=3。Monocarp 先修改第 2 行,然后添加一行(即 n=2,a=[2,0])。Polycarp 先添加一行,再修改第 5 行(即 m=2,b=[0,5])。
由于文件初始长度为 3,为使 Polycarp 能修改第 5 行,必须在此之前至少添加两行。此时,合法的操作序列示例包括 [0,2,0,5] 和 [2,0,0,5]。而不合法的序列如 [0,0,5,2](违反 Monocarp 操作顺序)和 [0,5,2,0](此时第 5 行尚不存在,无法修改)。
输入格式
The first line contains an integer t (1≤t≤1000). Then t test cases follow. Before each test case, there is an empty line.
Each test case contains three lines. The first line contains three integers k, n, m (0≤k≤100, 1≤n,m≤100) — the initial number of lines in file and lengths of Monocarp's and Polycarp's sequences of changes respectively.
The second line contains n integers a1,a2,…,an (0≤ai≤300).
The third line contains m integers b1,b2,…,bm (0≤bj≤300).
第一行包含一个整数 t(1≤t≤1000)。随后是 t 个测试用例。每个测试用例之前有一空行。
每个测试用例包含三行。第一行包含三个整数 k、n、m(0≤k≤100,1≤n,m≤100),分别表示文件初始的行数,以及 Monocarp 和 Polycarp 的修改操作序列的长度。
第二行包含 n 个整数 a1,a2,…,an(0≤ai≤300)。
第三行包含 m 个整数 b1,b2,…,bm(0≤bj≤300)。
输出格式
For each test case print any correct common sequence of Monocarp's and Polycarp's actions of length n+m or -1 if such sequence doesn't exist.
对于每个测试用例,输出任意一个长度为 n+m 的 Monocarp 与 Polycarp 行动的公共序列;如果不存在这样的序列,则输出 -1。
输入输出样例
输入#1
5 3 2 2 2 0 0 5 4 3 2 2 0 5 0 6 0 2 2 1 0 2 3 5 4 4 6 0 8 0 0 7 0 9 5 4 1 8 7 8 0 0
输出#1
2 0 0 5 0 2 0 6 5 -1 0 6 0 7 0 8 0 9 -1
输入解题思路,AI测评打分。不知道怎么写?