线段树的节点数
题号:NC205174
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

    小gay最近学习了线段树这个神奇的数据结构。但爱思考的小gay意识到线段树用数组保存也太浪费空间了。例如,如下一颗n=10的线段树长这个样子~

     

    其中,[a,b]表示节点表示数据范围,下标表示节点序号。

    可以看见,一共用了19个节点,但是标号到了25.

    令f(n)表示一颗n个叶子节点的线段树所占的最大数组下标。现在闲得无聊的小gay想让你帮忙求出:

    f(l) ⊕ f(l+1) ⊕ f(l+2) ⊕ …… ⊕ f(r)

    其中,⊕为异或运算。

输入描述:

两个整数,l和r,含义如上所示。其中

输出描述:

输出一个整数,对应异或的结果。

示例1

输入

复制
10 10

输出

复制
25
示例2

输入

复制
6 6

输出

复制
13