Sum Equals Xor
题目描述
You are given a positive integer L in base two. How many pairs of non-negative integers (a,b) satisfy the following conditions?
·a+b≤L
·a+b=a XOR b
Since there can be extremely many such pairs, print the count modulo 109+7.
→What is XOR?
The XOR of integers A and B, A XOR B, is defined as follows:
·When A XOR B is written in base two, the digit in the 2k’s place (k≥0) is 1 if either A or B, but not both, has 1 in the 2k’s place, and 0 otherwise.
For example, 3 XOR 5=6. (In base two: 011 XOR 101=110.)
Constraints
·L is given in base two, without leading zeros.
·1≤L<2100001
输入
Input is given from Standard Input in the following format:
L
输出
Print the number of pairs (a,b) that satisfy the conditions, modulo 109+7.
样例输入
【样例1】
10
【样例2】
1111111111111111111
样例输出
【样例1】
5
【样例2】
162261460
思路:见代码注释