题目描述
33给大家讲个故事:从前有颗树,叫线性代树,上面挂了一个33,树旁是综合英鱼的家,叫c+家,家里有把伞叫离伞,他还养着些蜜蜂叫电子信息技术数字部蜂,家里的客厅里摆着价值连城的体玉。一天综合英鱼走出家门,发现了挂在线性代树上的33,为了纪念他,把33的样子做成了卡片,把卡片挂在了c+家的房顶,贴在离伞和体玉的顶上,还在每一只电子信息技术数字部蜂上挂上了33的模型,最后在自己的脖子也挂上33的卡片的项链。多么感人的故事啊,综合英鱼为了纪念挂着的33,在每处都挂上了33。
有一天,IvyHole来到了综合英鱼的c+家,看到了遍布各处的33,墙上还贴着一个公式:33n
聪明的 IvyHole 环顾一周便明白了这其中的奥秘。
他将没有 33 的位置用 0 来表示,有 33 的位置用 1 来表示,就可以得到一个 01 串,假设这个 01 串中有 m 段连续的 1,其中一段的 1 的长度为 n,则这一段 1 所代表的的值即为 33n 的结果。
取这 m 段值中的最大值,即为寻找真正的 33 的密码。
IvyHole 马上打电话给了致力于 ACM 的你,希望你帮助他一起寻找 33。
注:由于答案可能非常大,所以将答案对 109 + 7 取模,最大值也为取模意义下的最大值。
输入描述
第一行输入一个正整数 n,表示 01 串的长度。
第二行输入一个长度为 n 的 01 串。
1 ≤ n ≤ 106
输出描述
一行输出寻找真正的 33 的密码,即:连续的 1 的个数代入墙上的公式后所得到的的值的最大值。
注:如果有一段长度为 4 的连续的 1(该段长度不能再扩大),则该段连续的 1 的值为 33 4 % (109 + 7)。特殊的,如果串中没有一个 33 ,则 IvyHole 走错了房间,直接输出 -1。
样例输入
5 10110
样例输出
1089
提示
感谢 IvyHole 提供的题目背景!
来源
逆乾