Processing math: 100%
编程题
                ### 问题描述

有一位伟大的数学先知,这一天他正在考虑利用无穷整数集做一些数字的预言。首先他将正整数分为奇数集和偶数集两个无穷整数集,奇数集为 { 1,3,5,7, } ,偶数集为 { 2,4,6,8, } 。

而后他在这两个整数集的基础上组成一个新的无穷整数集 S ,他首先设置一个变量 n ,初始时 n=1 ,他从奇数集中取出第一个整数(即 1 ),放入 S 中。而后他将 n 扩大两倍,此时 n=2 ,于是他从偶数集按顺序取出两个数(即 2,4 ),放入 S 中。然后他再将 n 扩大两倍,此时 n=4 ,他接着上次在奇数集中取到的位置接着往后取四个(上次在奇数集中取走了 1 ,那么接着往后取四个,应为 3,5,7,9 ),并按顺序放入 S 中……以此类推,由此他可以得到一个无穷整数集 SS 可以表示为 { 1,2,4,3,5,7,9,8,10, }。

现在先知给出了两个数 l,r ,保证 lr 。先知想请你预言出在无穷整数集 S 中从第 l 个数到第 r 个数之间所有数的和是多少(包括第 l 个数和第 r 个数)。

因为这个数将会非常大,先知希望你能输出对 109+7 取模后的结果。

输入格式

输入包含两个整数 l,r ,表示先知给出的两个数字。

输出格式

输出一个整数,表示在模 109+7 意义下无穷整数集 S 中从第 l 个数到第 r 个数之间所有数的和。

样例输入

3 7

样例输出

28

评测数据规模

对于所有评测数据, 1lr1018

查看答案
赣ICP备20007335号-2