#B1461. 数字串切割
数字串切割
【题目描述】
给定一个长度为 的字符串 , 只由数字字符 0 到 9 组成。
你需要将 从左到右切割成若干段,每一段都是 的一个非空连续子串。
每一段按照十进制整数理解,要求每一段组成的整数都不超过 。
一段数字可以包含前导 0,例如 007 组成的整数为 。
请输出最少需要切割成多少段。
【输入描述】
第一行输入两个整数 。
第二行输入一个长度为 的数字字符串 。
保证:
- ;
- ;
- 的长度为 ;
- 只包含字符
0到9; - 保证至少存在一种合法切割方案。
【输出描述】
输出一行一个整数,表示最少需要切割成的段数。
【样例 1】
【样例 1 输入】
7 1000
1002003
【样例 1 输出】
3
【样例 1 解释】
可以切割为 100|200|3,每段组成的整数都不超过 。
【样例 2】
【样例 2 输入】
8 120
12304567
【样例 2 输出】
4
【样例 2 解释】
可以切割为 12|30|45|67,每段组成的整数都不超过 。
【样例 3】
【样例 3 输入】
23 5000
12000499905000123400007
【样例 3 输出】
5
【样例 3 解释】
一种最优切割为 12|000499|905|0001234|00007。
其中 000499、0001234 和 00007 都带有前导零,但它们组成的整数分别为 、 和 ,前导零不影响数字数值大小。