HX1253E. 合并字符串

提交15 通过11
通过率73.3%
时间限制1000ms
内存限制128MiB

题目描述

题目描述

给定一个只包含数字字符的字符串 s 和一个正整数 k。

如果字符串 s 的长度大于 k,则需要执行以下操作:

将字符串拆分成长度为 k 的若干个连续子串,使得前 k 个字符都分在第一个子串中,接下来的 k 个字符都分在第二个子串中,依次类推。最后一个子串的长度可以小于 k;

用第 1步拆分出的每个子串中的所有数字之和替换对应的子串。例如,"346" 会被替换为 "13",因为3+4+6=133+4+6=13。

按照从左到右的顺序合并所有子串得到一个新的字符串,如果新字符串的长度大于 k 则重复第一步。

如果字符串 s 的长度不大于 k,则不需要执行任何操作。

输入格式

第一行,包含一个字符串 s,保证 s 中只包含数字字符;

第二行,包含一个整数 k。

输出格式

一行一个字符串,表示原字符串的最终结果。

11111222223
3
135
12
2
12
123
3
123
84200
4
140

提示

  • 第一轮,将 s 分成:"111"、"112"、"222" 和 "23" 。 接着,计算每一组的数字和:1+1+1=31+1+1=3、1+1+2=41+1+2=4、2+2+2=62+2+2=6 和 2+3=52+3=5 。 这样,s 在第一轮之后变成 "3" + "4" + "6" + "5" = "3465" 。
  • 第二轮,将 s 分成:"346" 和 "5" 。 接着,计算每一组的数字和:3+4+6=133+4+6=13 、5=55=5 。 这样,s 在第二轮之后变成 "13" + "5" = "135" 。 现在,∣s∣≤k|s|\le k ,所以返回 "135" 作为答案

数据范围

对于 100% 的数据:1≤∣s∣≤1051\le |s|\le 10^{5},2≤k≤1052\le k\le 10^{5},其中 ∣s∣|s| 表示字符串 s 的长度。