排序幻觉
题号:NC53304
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
Special Judge, 64bit IO Format: %lld

题目描述

题目译自 ROI 2017 Day 1 T2. Иллюзия сортировки
给一个数组,在数组中选择一个数b,如果b满足
(a[1]⊕b)≤(a[2]⊕b)≤...≤(a[n]⊕b)
则称b是数组a的幻数。此处⊕表示按位异或。
该数组将会被先后修改q次,我们每次只修改一个数。
第一次修改前以及每次修改后,请给出当前数组最小的幻数,如果当前数组不存在幻数请输出-1。

输入描述:

第一行有一个整数n。
第二行有n个整数,表示数组a。
第三行有一个整数q。
在接下来的q行中,每行有两个整数p_i,v_i,表示将修改为v_i

输出描述:

共(q+1)行,每行一个整数,表示当前数组最小的幻数。
示例1

输入

复制
3
0 1 4
3
2 7
3 3
1 4

输出

复制
0
2
-1
4

备注:


CC-BY-SA,感谢LOJ分享,译文来自 https://loj.ac/problem/2767