#P2112. 【阿里云研发岗】2025-3-30-第一题-字符串和声(二)

【阿里云研发岗】2025-3-30-第一题-字符串和声(二)

题目描述

薯条哥正在学习字符串和声,字符串仅由小写字母和连接线-构成。我们使用竖线|来划分小结,例如,

dodorere|do-do-re|re---| 代表两个小结,其中,第一个小结长度为88,即dodoredo-do-re;第二个小结长度为55,即rere---

随后,我们定义字符串的和声为:字符串和声小节数量和各个小结的长度均与原字符串一致,唯一的区别是其会比原字符串晚pp个长度出现

和声未出现时使用下划线替代空白位置,小结结束时未输出完整的和声会被直接截断;更具体地,先在每一个小节前面加上pp条下划线,

随后截取原来的小节的长度位,得到每一个小节的和声。例如,当p=2p=2时,第一小节变为"_ _ doreredo-re-re",

_再截取前88位,得到第一小节的和声 " _ _dododo-do-",上方样例的和声最终可以唯一地表示为| _ dododo-do-| _ _rere-|

现在,对于给出的字符串和整数pp,请你直接输出和声!

输入描述

第一行输入两个整数n,p(1n3×105,0×p×109)n,p(1\le n\le 3\times 10^5,0\times p\times 10^9)代表原字符串总长度(包括|在内)和和声延迟的长度。

此后若干行,一共输入nn个字符,代表原字符串。

保证每行的首末均为竖线'|'',每个小结的长度至少为11,小结中的字符仅为小写字母和连接线'-''。

输出描述

根据输入,输出若干行,代表和声字符串。

样例1

输入

16 2
|do-do-re|re--|

输出

|__do-do-|__re|

样例解释

这个样例已经在题面中加以解释。

样例2

输入

15 0
|ciallo|
|-|
|--|

输出

|ciallo|
|-|
|--|

样例3

输入

7 2
|-|
|--|

输出

|_|
|__|

样例4

输入

16 2
|do-do-re|mi---|

输出

|__do-do-|__mi-|

样例解释

第一节和声:dodoredo-do-re 变为_ _ dododo-do-

第二节和声:mimi---变为 _ _mimi-