#P1174. Contact
Contact
题目描述
天文学家Astro Insky博士在射电望远镜中心工作。最近,她注意到从银河系中心发出一种非常奇特的微波脉冲发射。这是某种外星智慧生命发出的信号吗?还是只是恒星的正常“心跳”?
你需要帮助Insky博士找出真相,方法是提供一个工具来分析她记录的文件中的位模式。Insky博士希望找到长度在到之间(含)的模式,这些模式在每天的数据文件中重复出现的次数最多。对于每个长度范围,需要找出前个不同的最高频率(即出现次数)。模式的出现可以重叠,且仅考虑至少出现一次的模式。
输入
程序从标准输入读取数据:
- 第一行:整数,表示模式的最小长度。
- 第二行:整数,表示模式的最大长度。
- 第三行:整数,表示需要获取的不同频率的数量。
- 第四行:由0和1组成的序列,以字符2结尾。
约束条件:
- 输入数据最多2兆字节。
- 参数、和满足:,。
输出
程序向标准输出写入结果,最多行,按模式频率降序列出前个最高频率及其对应的模式。每行格式为:
frequency pattern pattern ... pattern
其中:
frequency
是模式的出现次数。- 同一行的模式按长度降序排列;长度相同的模式按数值逆序(即从大到小的二进制数值)排列。
若不同频率的数量少于,则输出实际行数。
输入数据 1
2
4
10
010100100100010001111011000010100110011110000100100111100100000002
输出数据 1
23 00
15 10 01
12 100
11 001 000 11
10 010
8 0100
7 1001 0010
6 0000 111
5 1000 110 011
4 1100 0011 0001