#P7866. Anti-hash Test
Anti-hash Test
Anti-hash Test
Problem Description
It is well known that the following string can challenge almost every solution that uses polynomial hashes modulo :
$$s_i=\begin{cases} a & \text{popcount(i)} \bmod 2 = 0 \\ b & \text{popcount(i)} \bmod 2 = 1 \end{cases} $$where means the number of ones in binary representation of number . Given a string and an integer , find the number of occurrences of in string and the number of distinct strings which have the same number of occurrences in string . As both the numbers may be very large, you are only asked to calculate it modulo .
Input
There are multiple test cases. The first line of input contains an integer , indicating the number of test cases. For each test case:
The first line contains an integer ().
The second line contains a string () consisting only of letters a' and
b'.
It is guaranteed that the size of the input file does not exceed 20M.
Output
For each test cases, if the string does not appear in string , you should simply output . Otherwise, output two integers denoting the the number of occurrences of in string modulo and the number of distinct strings which have the same number of occurrences in string modulo .
Sample Input
4
10
a
10
abba
5
abbabaabbaababbabaababbaabbabaab
20
ababab
Sample Output
512 2
171 4
1 344
-1
Source
2020 Multi-University Training Contest 10