Logo HelloWorld信息学奥赛题库

少儿编程

时间限制:1 s 空间限制:512 MB

#4299. 数字

Statistics

题目描述

NiroBC 姐姐脑洞了两个数字 $x$ 和 $y$ ,它们满足 $x \lor y = T$ ,且 $L_x \le x \le R_x, L_y \le y \le R_y$ , NiroBC 姐姐想知道 $x \land y$ 有多少种不同的取值,若有多组 $(x, y)$ 的 $x \land y$ 值相同,则只算一次。

(其中 $\lor$ 表示按位取或,C/C++中写作|Pascal中写作or

(其中 $\land$ 表示按位取与,C/C++中写作&Pascal中写作and

输入格式

一行,五个非负整数 $T, L_x, R_x, L_y, R_y$ 。

输出格式

一行,一个整数,答案。

样例

input

11 3 10 8 13

output

7

符合条件的 $(x, y)$ 有:(二进制表示)

$x$ $y$ $x\land y$
0011 1000 0000
0011 1001 0001
0011 1010 0010
0011 1011 0011
1000 1011 1000
1001 1010 1000
1001 1011 1001
1010 1001 1000
1010 1011 1010

$x \land y$ 不重复的有 $7$ 种。

数据范围与提示

对于所有数据, $0 \le T, L_x, R_x, L_y, R_y < 2^{60}$ , $L_x \le R_x$,$L_y \le R_y$ 。

本题采用打包测试。

各个 Subtask 的特殊限制如下,不填代表该项无特殊限制。

Subtask 编号 $T$ $L_x$ $L_y$ $R_x$ $R_y$ 其他限制 该 Subtask 分值
0 $ < 2^{10} $ $ < 2^{10} $ $ < 2^{10} $ $ < 2^{10}$ $ < 2^{10} $ 13
1 $=0$ $=0$ 15
2 $T$ 的二进制表示下 $1$ 的个数不超过 $15$ 25
3 47