题目描述
给定长度为 n 的严格递增数组 a,再给出 m 个数。现要将这 m 个数插入数组中,使得数组仍然保持严格递增。求这 m 个数的插入位置和最后的数组。
如果有相同的数,你应该忽略这次操作。
输入格式
当前的输入为操作的密匙 x。记上次的数(成功插入的数,忽略的不算)在原数组中的位置为 lastans(如是第一次操作,lastans=0),则本次的数为 x⊕lastans。
如仍对上述有疑惑,请看下面的 样例解释。
第一行两个整数 n,m。
第二行 n 个整数 ai,中间用空格隔开。保证 a 数组严格递增。
接下来 m 行,每行一个正整数表示密匙。
输出格式
第一行 m 个正整数表示每个数的插入位置。如该数被忽略请输出 −1。
第二行输出若干个数表示最终数组。
样例 #1
样例输入 #1
5 4
1 3 10 14 20
5
5
15
21
样例输出 #1
3 4 6 8 
1 3 5 6 10 12 14 17 20
提示
样例解释
第一次,x=5,lastans=0,则插入的数为 5⊕0=5。
第二次,x=5,lastans=3,则插入的数为 5⊕3=6。
第三次,x=15,lastans=3,则插入的数为 15⊕3=12。
第四次,x=21,lastans=4,则插入的数为 21⊕4=17。
数据范围
对于 20% 的数据,1≤n,m≤500。
对于 40% 的数据,1≤n,m≤5000。
对于 100% 的数据,1≤n,m≤105,1≤ai≤5×105。
不保证异或之后的插入数 5∗105