DIFFICULTY:
3494
First, let’s determine when for an array A_1, A_2, \ldots, A_N exists an integer C such that A_1 \oplus C < A_2 \oplus C < \ldots < A_N \oplus C.
Choose any 1 \le i \le N1. Let j be the largest bit where A_i differs from A_{i+1} (if A_i = A_{i+1}, there is clearly no such C). Then, if 2^j is set in A_i and not in A_{i+1}, it should be set in C, otherwise it shouldn’t be set in C.
Clearly, such C exists only if there is no bit for which we get contradictory conditions. That is, there can’t exist 1 \le i_1, i_2 \le N1 and bit j, such that for 2^j is the highest differing bit for both (A_{i_1}, A_{i_1 + 1}), (A_{i+2}, A_{i_2 + 1}), and it’s set in A_{i_1}, A_{i_2 + 1} and not set in A_{i_1+1}, A_{i_2}.
Now, we need to check if there exists B such that there are no such i_1, i_2, j for array A_1 + B, A_2 + B, \ldots, A_N + B.
Lemma: If such B exists, there exists such B < 2^{31}.
Proof: Consider the smallest such B. Suppose that B \ge 2^{31}. Consider numbers A_1 + B, A_2 + B, \ldots, A_N + B.

Suppose that all of them have the same highest set bit 2^j, and j \ge 31. Then, if B\ge 2^j, we can replace B by B  2^j, and all the conditions will still clearly be satisfied. Otherwise, B < 2^j. Note that then A_i + B < 2^{30} + 2^j, so the bit 2^{j1} in each A_i + B is not set. Also, B \ge 2^{j1}, as otherwise we would have A_i + B < 2^{30} + 2^{j1} \le 2^j for each i. Then, we can replace B by B  2^{j1}, and it will work (all numbers will have the same highest bit 2^{j1} instead of 2^j, and nothing else will change.

Suppose that not all of them have the same highest bit. Suppose that the highest bit set in some of them is j. As each A_i + B \ge 2^{31}, j \ge 32. Now, there exists some A_k such that A_k + B \ge 2^j, and there exists some l such that A_l + B < 2^j. Let’s call i big if A_i + B \ge 2^j, and small otherwise.
It’s easy to see that B is in range [2^j  2^31, 2^j  1] then. It’s also easy to see that then for each big i, A_i + B doesn’t have bit 2^{j1}, and for each small i, A_i + B has bit 2^{j1}. We can also infer that all big elements form some prefix or some suffix (so that the condition for bit j holds). Then, replace B by B  2^{j1}. Everything will basically remain the same: for each big i, we will delete bit 2^j and add 2^{j1}, for each small we will just delete bit 2^{j1}, so the condition for bit j1 will still be satisfied, and all other bits won’t even change. Proof completed.
Now, we can just check each B from 0 to 2^{31}  1!
But how…
Let’s see how the condition on B looks for a fixed bit j. For each 1 \le i \le N1, consider $B$s such that the highest bit where A_i + B, A_{i+1} + B differ is 2^j. It’s easy to see that these $B$s form (at most) 2 ranges modulo 2^{j+1}. Find such ranges for each i.
Now, let L be the union of such ranges for all i such that A_i < A_{i+1}, and R be the union of such ranges for all i such that A_i > A_{i+1}. The forbidden values of B are those at L \cap R.
Let’s now go from the highest bit to the lowest, and see which remainders are forbidden.
We already know that B < 2^{31}, so we will now have to consider all j from 31 to 0. Our set of initial forbidden remainders modulo 2^{32} is bad = [2^{31}, 2^{32}1].
Now, for each j from 31 to 0, find the corresponding sets of ranges L, R and combine bad with L\cup R. Which remainders x modulo 2^{j} are prohibited then? Those, for which both x and x + 2^j are present in bad \cup (L \cap R). Find all such bad remainders (we keep everything as a set of ranges).
In the end, if 0 is allowed, such B exists, else it doesn’t.
Total complexity is O(N \log N \log MAX A_i)