#P11005. 字符串子串查找

字符串子串查找

题目描述

对于一个只包含 0011 的字符串 s\verb|s|,定义 Kmp(s)\verb|Kmp(s)| 运算的结果是 01\verb|01| 字符串 s\verb|s| 对应二进制数转十进制数的结果。

给出一个只包含 0011 的字符串,求其每一个子串进行 Kmp\verb|Kmp| 运算的结果出现的次数。

输入格式

一行,一个 01\verb|01| 字符串。

输出格式

对输入的字符串的所有子串进行 Kmp\verb|Kmp| 运算的结果,如果出现次数大于 11,输出该 Kmp\verb|Kmp| 运算结果及出现次数,中间用单个空格隔开。按 Kmp\verb|Kmp| 运算结果从小到大依次输出,每行一个。

输入输出样例

10101
0 2
1 5
2 3
5 3
10101010101010101010101010
0 13
1 25
2 25
5 23
10 23
21 21
42 21
85 19
170 19
341 17
682 17
1365 15
2730 15
5461 13
10922 13
21845 11
43690 11
87381 9
174762 9
349525 7
699050 7
1398101 5
2796202 5
5592405 3
11184810 3

说明/提示

👀️ 对于100%100\% 的数据,输入的 01\verb|01| 字符串不为空且长度不超过 100100