P0905

[Usaco2006 Nov]Round Numbers 圆环数

[Usaco2006 Nov]Round Numbers 圆环数

奶牛们没有手指,无法通过“石头、剪刀、布”或抛硬币来决定挤奶顺序,因此她们会举行“圆环数”竞赛。

第一头奶牛选择一个小于 2×1092\times 10^9 的整数,第二头奶牛也选择一个满足相同条件的整数。如果两个整数都是圆环数,那么第一头奶牛获胜;否则,第二头奶牛获胜。

如果一个正整数 NN 的二进制表示中,数字 00 的个数大于或等于数字 11 的个数,那么称 NN 为圆环数。

例如,整数 99 的二进制表示为 10011001,其中有 22 个 00 和 22 个 11,因此 99 是圆环数。整数 2626 的二进制表示为 1101011010,其中有 22 个 00 和 33 个 11,因此 2626 不是圆环数。

为了快速判断竞赛结果,Bessie 想知道闭区间 [Start,Finish][\mathrm{Start},\mathrm{Finish}] 内共有多少个圆环数。请编写程序计算答案。

输入格式

输入一行,包含两个用空格分隔的整数 Start\mathrm{Start} 和 Finish\mathrm{Finish}。

输出格式

输出一个整数,表示闭区间 [Start,Finish][\mathrm{Start},\mathrm{Finish}] 内圆环数的个数。

样例输入

2 12

样例输出

6

数据范围

  • 1≤Start<Finish≤2×1091\le \mathrm{Start}<\mathrm{Finish}\le 2\times 10^9。

来源与许可

本题为 USACO 2006 November 试题「Round Numbers 圆环数」,题面与测试数据整理自 BZOJ。

样例 1

输入

2 12

输出

6