题目描述
NiroBC 姐姐脑洞了两个数字 x 和 y ,它们满足 x∨y=T ,且 Lx≤x≤Rx,Ly≤y≤Ry , NiroBC 姐姐想知道 x∧y 有多少种不同的取值,若有多组 (x,y) 的 x∧y 值相同,则只算一次。
(其中 ∨ 表示按位取或,C/C++
中写作 |
,Pascal
中写作 or
)
(其中 ∧ 表示按位取与,C/C++
中写作 &
,Pascal
中写作 and
)
输入格式
一行,五个非负整数 T,Lx,Rx,Ly,Ry 。
输出格式
一行,一个整数,答案。
11 3 10 8 13
7
数据范围与提示
对于所有数据, 0≤T,Lx,Rx,Ly,Ry<260 , Lx≤Rx,Ly≤Ry 。
本题采用打包测试。
各个 Subtask 的特殊限制如下,不填代表该项无特殊限制。
Subtask 编号 |
T |
Lx |
Ly |
Rx |
Ry |
其他限制 |
该 Subtask 分值 |
0 |
<210 |
<210 |
<210 |
|
13 |
1 |
|
=0 |
|
15 |
2 |
T 的二进制表示下 1 的个数不超过 15 |
|
25 |
3 |
|
47 |