题库练习 Maxim and Matrix
← 上一题 下一题 →

A8799 | Maxim and Matrix

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

Maxim loves to fill in a matrix in a special manner. Here is a pseudocode of filling in a matrix of size $(m+1)×(m+1)$ :

![](/uploads/acgo/image/6e1fb98180205194_fe0a040eab42.jpeg)

Maxim asks you to count, how many numbers $m$ $(1<=m<=n)$ are there, such that the sum of values in the cells in the row number $m+1$ of the resulting matrix equals $t$ .

Expression ( $x$ $xor$ $y$ ) means applying the operation of bitwise excluding "OR" to numbers $x$ and $y$ . The given operation exists in all modern programming languages. For example, in languages C++ and Java it is represented by character "^", in Pascal — by "xor".

输入格式

A single line contains two integers $n$ and $t$ $(1<=n,t<=10^{12},t<=n+1)$ .

Please, do not use the %lld specifier to read or write 64-bit integers in C++. It is preferred to use the cin, cout streams or the %I64d specifier.

输出格式

In a single line print a single integer — the answer to the problem.

输入输出样例

输入 #1
1 1
输出 #1
1
输入 #2
3 2
输出 #2
1
输入 #3
3 3
输出 #3
0
输入 #4
1000000000000 1048576
输出 #4
118606527258
C++ 编辑器
输入
输出