P6025 线段树
题目背景
小 W 学习了一种叫做线段树的数据结构。
题目描述
很快,小 W 就发现:线段树实在是太浪费空间了!
比如,一棵 $n=6$ 的线段树长下面这样:

可以发现,只有 $11$ 个节点存储了有用信息,但使用的数组下标到了 $13$。
令 $f(n)$ 表示一棵 $n$ 个叶子节点的线段树所占的最大数组下标,现在小 W 想让你求出:
$$f(l)\;\oplus\;f(l+1)\;\oplus\;f(l+2)\;\oplus\cdots \oplus\;f(r)$$
其中,$\oplus$ 表示异或运算,相当于 C++ 中的`^`符号。
输入格式
一行两个整数,表示 $l,r$,意义如上。
输出格式
一行一个整数,表示结果。
说明/提示
## 样例解释
$f(6)=13$,故答案为 $13$。
## 提示
如果你不知道什么是线段树:
```cpp
void build(int k,int l,int r)
{
if(l==r)
{
//do something
//e.g. tree[k]=a[l]
return;
}
int mid=(l+r)>>1;
build(k