P0516

[2010Beijing Wc]外星联络

[2010Beijing Wc]外星联络

小 P 在看过电影《超时空接触》(Contact)之后被深深地打动,决心致力于寻找外星人的事业。

于是,他每天晚上都爬在屋顶上,试图用自己的收音机收听外星人发来的信息。虽然他收听到的仅仅是一些噪声,但是他还是按照这些噪声的高低电平,将接收到的信号改写为由 00 和 11 构成的串,并坚信外星人的信息就隐藏在其中。

他认为,外星人发来的信息一定会在他接收到的 0101 串中重复出现,所以他希望找到他接收到的 0101 串中所有重复出现次数大于 11 的子串。但是他收到的信号串实在是太长了,于是,他希望你能编一个程序来帮助他。

输入格式

第一行是一个整数 NN,代表小 P 接收到的信号串的长度。

第二行包含一个长度为 NN 的 0101 串,代表小 P 接收到的信号串。

输出格式

每行包含一个出现次数大于 11 的子串所出现的次数。输出的顺序按对应的子串的字典序排列。

样例输入

7
1010101

样例输出

3
3
2
2
4
3
3
2
2

样例解释

出现次数大于 11 的子串按字典序排列,依次为 0、01、010、0101、1、10、101、1010、10101,它们的出现次数依次为 3,3,2,2,4,3,3,2,23, 3, 2, 2, 4, 3, 3, 2, 2,即为输出的 99 行。

数据范围

对于 100%100\% 的数据,满足 0≤N≤30000\le N\le 3000。

来源与许可

本题为 Beijing WC 2010 试题「外星联络」,题面与测试数据整理自 BZOJ 2251。

样例 1

输入

7
1010101

输出

3
3
2
2
4
3
3
2
2