编程题
### 问题描述
小蓝有一棵树,树中包含 $N$ 个结点,编号为 $0,1,2,\cdots, N - 1$,其中每个结点上都有一个整数 $X_{i}$。他可以从树中任意选择两个不直接相连的结点 $a\text{、}b$ 并获得分数 $X_{a} \oplus X_{b}$,其中 $\oplus$ 表示按位异或操作。
请问小蓝可以获得的最大分数是多少?
### 输入格式
输入的第一行包含一个整数 $N$,表示有 $N$ 个结点。
第二行包含 $N$ 个整数 $X_{1},X_{2},\cdots ,X_{N}$,相邻整数之间使用一个空格分隔。
第三行包含 $N$ 个整数 $F_{1},F_{2},\cdots,F_{N}$,相邻整数之间使用一个空格分隔,其中第 $i$ 个整数表示 $i$ 的父结点编号,$F_{i} = - 1$ 表示结点 $i$ 没有父结点。
### 输出格式
输出一行包含一个整数表示答案。
### 样例输入
```text
5
1 0 5 3 4
-1 0 1 0 1
```
### 样例输出
```text
7
```
### 样例说明
选择编号为 $3$ 和 $4$ 的结点,$x_{3} = 3,x_{4} = 4$,他们的值异或后的结果为 $3 \oplus 4 = 7$ 。
### 评测用例规模与约定
对于 ${50}\\%$ 的评测用例,$1 \leq N \leq {1000}$;
对于所有评测用例,$1 \leq N \leq 10^{5},0 \leq X_{i} \leq 2^{31} - 1, - 1 \leq F_{i} \leq N,F_{i} \neq 0$。