#abc240h. [abc240_h]Sequence of Substrings

[abc240_h]Sequence of Substrings

题目描述

给定一个长度为 NNNN 为整数)的由 0011 组成的字符串 S=s1s2ldotssNS = s_1 s_2 \\ldots s_N

找出满足以下三个条件的最大整数 KK

  • 对于每一个 i=1,2,ldots,Ki = 1, 2, \\ldots, K,都存在一对整数 (Li,Ri)(L_i, R_i) 满足 1leqLileqRileqN1 \\leq L_i \\leq R_i \\leq N
  • 对于每一个 i=1,2,ldots,K1i = 1, 2, \\ldots, K-1,都有 RiltLi+1R_i \\lt L_{i+1}
  • 对于每一个 i=1,2,ldots,K1i = 1, 2, \\ldots, K-1,都有字符串 sLisLi+1ldotssRis_{L_i}s_{L_i+1} \\ldots s_{R_i} 严格按字典序小于字符串 sLi+1sLi+1+1ldotssRi+1s_{L_{i+1}}s_{L_{i+1}+1}\\ldots s_{R_{i+1}}

约束条件

  • 1leqNleq2.5times1041 \\leq N \\leq 2.5 \\times 10^4
  • NN 是整数。
  • SS 是一个长度为 NN 的由 0011 组成的字符串。

输入

输入数据从标准输入读取,输入格式如下:

NN SS

输出

打印答案。


示例输入 1

7
0101010

示例输出 1

3

对于 K=3K = 3,满足条件的序列为 $(L_1, R_1) = (1, 1), (L_2, R_2) = (3, 5), (L_3, R_3) = (6, 7)$。确实,s1=0s_1 = 0 严格按字典序小于 s3s4s5=010s_3s_4s_5 = 010,而 s3s4s5=010s_3s_4s_5 = 010 严格按字典序小于 s6s7=10s_6s_7 = 10
对于 Kgeq4K \\geq 4,不存在满足条件的序列 $\\big((L_1, R_1), (L_2, R_2), \\ldots, (L_K, R_K)\\big)$。


示例输入 2

30
000011001110101001011110001001

示例输出 2

9