编程题
### 问题描述
给定一个整数数组 $arr$ 和一个整数 $q$ 表示查询的数量。接下来的 $q$ 行,每行给出一个整数 $x$。对于每个 $x$,你需要找到 $arr$ 中的一个数 $y$ 使得 $x$ $XOR$ $y$ 的值最大,然后输出这个最大值。
### 输入格式
第一行包含一个整数 $n$,表示数组 $arr$ 的大小。
第二行包含 $n$ 个整数,分别是 $arr$ 的元素。$(0 \le arr[i] \le 10^9)$。
第三行包含一个整数 $q$,表示查询的数量。
接下来的 $q$ 行,每行包含一个整数 $x$。$(0 \le x \le 10^9)$。
### 输出格式
对于每个查询输出一行,表示 $x$ $XOR$ $y$ 的最大值。
### 样例输入
```
5
3 5 7 10 12
3
3
7
10
```
### 样例输出
```
15
13
15
```
### 测评数据规模
对于 $40$% 的数据,$1 \le n, q \le 10$。
对于 $80$% 的数据,$1 \le n, q\le 10^3$。
对于 $100$% 的数据,$1 \le n, q \le 10^5$。