#P6488. Binary
Binary
Problem Description
As we all know, computer uses binary code to compute. Each decimal digit can be represented by a string of 0/1:
Decimal 0 1 2 3 4 5 6 7 8 9
Binary 0 1 10 11 100 101 110 111 1000 1001
We are going to transfer all the integers from L to R, both inclusive, with each decimal digit to binary. For example, after transferring decimal integer 127 to our binary representation, we can get 110111, because 1 is 1, 2 is 10 and 7 is 111. Happily, we find that n continuous bits s[i] have values v[i] associated with them. For a decimal number, after transferring to binary, if s[i] appears in it for k times, the value of if will be added k*v[i]. Now we want you to calculate the sum of value for each integer from L to R.
Since the answer may be very large, you just need to output it mod 1000000007.
Input
The first line of the input contains a single integer T denoting the number of test cases.
For each test case, the first line contains a single integer n denoting the number of valuable continuous bits.
Then comes n lines, each line has a string s contains only 0 and 1 and an integer v denoting the value.
The last line has two integers L and R.
Output
For each test case, output a single integer—the sum of value for each integer from L and R.
1
2
010 2
101 3
1 20
6
Hint
T<=10
n<=100,length(s)<=100,val<=100
L<=R<=10^100