二进制分类

测试数据来自 system/1600

时间限制:1秒  内存限制:256M


【问题描述】

  若将一个正整数化为二进制数,在此二进制数中,我们将数字 1 的个数多于数字 0 的个数的这类二进制数称为 A 类数,否则就称其为 B 类数。例如:

  \((13)_{10} = (1101)_2\),其中 1 的个数为 3,0 的个数为 1,则称此数为 A 类数;

  \((10)_{10} = (1010)_2\),其中 1 的个数为 2,0 的个数也为 2,称此数为 B 类数;

  \((24)_{10} = (11000)_2\),其中 1 的个数为 2,0 的个数为 3,则称此数为 B 类数;

  程序要求:求出 \(L~R\) 之中(包括 \(L\) 和 \(R\)),全部 \(A、B\) 两类数的个数。

【输入格式】

  两个整数 \(L\) 和 \(R\)。

【输出格式】

  一行,包含两个整数,分别是 A 类数和 B 类数的个数,中间用单个空格隔开。

【输入输出样例】

 Input

1 11

 Output

6 5

【数据说明】

  对于 \(100\%\) 的数据 \(1≤<L≤R≤10^9\),\(R_L≤10^6\)。

【来源】

  Mr.he

信息

ID
1279
难度
9
分类
数论 点击显示
标签
(无)
递交数
5
已通过
2
通过率
40%
上传者