#CF2084F. 天际线

天际线

F. 天际线
时间限制:每个测试点 4 秒
内存限制:512 兆字节


题目描述

给定一个长度为 nn 的排列 aa

我们说一个长度为 nn 的排列 bb好的,如果经过至多 nn 次(可能为零次)下列操作后,aabb 可以变成相同:

选择两个整数 l,rl, r,满足 1l<rn1 \le l < r \le nar=min(al,al+1,,ar)a_r = \min(a_l, a_{l+1}, \dots, a_r)
将子段 [al,al+1,,ar][a_l, a_{l+1}, \dots, a_r] 向右循环移位一位。
换句话说,将 aa 替换为:

$$[a_1, \dots, a_{l-1}, a_r, a_l, a_{l+1}, \dots, a_{r-1}, a_{r+1}, \dots, a_n] $$

同时,你还会得到一个长度为 nn 的排列 cc,其中某些元素缺失,用 00 表示。

你需要找到一个好的排列 b1,b2,,bnb_1, b_2, \dots, b_n,使得 bb 可以通过填充 cc 的缺失元素得到(即对每个 1in1 \le i \le n,如果 ci0c_i \neq 0,则 bi=cib_i = c_i)。如果不可能,输出 1-1


  • 长度为 nn 的排列是由 11nnnn 个不同整数组成的数组,顺序任意。例如 [2,3,1,5,4][2,3,1,5,4] 是一个排列,但 [1,2,2][1,2,2] 不是(22 出现两次),[1,3,4][1,3,4] 也不是(n=3n=3 但数组中有 44)。

输入格式

每个测试文件包含多个测试用例。
第一行包含一个整数 tt1t1041 \le t \le 10^4),表示测试用例的数量。

每个测试用例:

  • 第一行包含一个整数 nn2n5×1052 \le n \le 5 \times 10^5)。
  • 第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ain1 \le a_i \le n),保证 aa 是长度为 nn 的排列。
  • 第三行包含 nn 个整数 c1,c2,,cnc_1, c_2, \dots, c_n0cin0 \le c_i \le n),保证 cc 中不为 00 的元素互不相同。

所有测试用例的 nn 之和不超过 5×1055 \times 10^5


输出格式

对于每个测试用例:

  • 如果不可能找到这样的好的排列 bb,输出一行 1-1
  • 否则,输出一行 nn 个整数 b1,b2,,bnb_1, b_2, \dots, b_n,表示找到的好的排列 bb。需要满足对每个 ii,若 ci0c_i \neq 0,则 bi=cib_i = c_i。如果有多个答案,输出任意一个。

示例

输入

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

输出

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

样例解释

  • 第一个测试用例b=[1,2]b=[1,2] 是有效答案,因为执行一次操作(l=1,r=2l=1,r=2,向右循环移位一次)后 aa 变成 [1,2][1,2],与 bb 相同。
  • 第二个测试用例b=[2,3,4,1]b=[2,3,4,1] 是有效答案,因为一次操作(l=1,r=2l=1,r=2)后 aa 变成 [2,3,4,1][2,3,4,1]
  • 第三个测试用例b=[1,3,2,4,5]b=[1,3,2,4,5] 是有效答案,需要两次操作:
    1. l=1,r=3l=1,r=3aa 变为 [1,3,2,5,4][1,3,2,5,4]
    2. l=4,r=5l=4,r=5aa 变为 [1,3,2,4,5][1,3,2,4,5]
  • 第四个测试用例aabb 已相同。
  • 第五个测试用例:无法找到符合条件的 bb,输出 1-1
  • 第六个测试用例b=[3,2,1,5,4,6]b=[3,2,1,5,4,6] 是有效答案,需要三次操作:
    1. l=2,r=4l=2,r=4[3,2,5,6,1,4][3,2,5,6,1,4]
    2. l=3,r=5l=3,r=5[3,2,1,5,6,4][3,2,1,5,6,4]
    3. l=5,r=6l=5,r=6[3,2,1,5,4,6][3,2,1,5,4,6]