列表

详情


NC53266. 复制粘贴 2

描述

译自 JOISC 2015 Day1 T1「コピー&ペースト2 / Copy and Paste 2
复制粘贴是文本编辑器最重要的功能之一,JOI社正在开发一个可以快速处理复制粘贴操作的文本编辑器。作为JOI社的一名优秀的程序员,你的任务是测试复制粘贴功能的核心代码。由于JOI社危在旦夕,你需要确保这段核心代码准确高速。
具体的操作如下。初始时文件内容为一个字符串S,随后进行N次复制粘贴操作。第i次操作,先复制字符串中位置为A_iB_i之间的子串,并将这部分插入到字符串的C_i位置。这里,位置x表示从字符串开头向后数x个字符与后一个字符之间的位置(位置0表示字符串的开头)。例如,字符串copypaste的位置6为字符a与s之间的位置,位置9表示字符e的后面,也就是说,它代表了字符串的结尾。但是,如果操作后字符串长度超过M,就会从字符串结尾删除字符,直到字符串长度为M。
给定文本S和N次操作,你的任务是求出经过这N次操作后文本S的前K个字符。

输入描述

第一行两个正整数K,M,分别表示最后要输出文本S的前K个字符,文本S长度的上限为M。
第二行一个字符串S,表示初始文本。
第三行一个正整数N,表示操作次数。
接下来N行,每行三个正整数A_i,B_i,C_i,表示将文本S中位置为A_iB_i的部分复制插入到C_i位置。

输出描述

一行一个长度为K的字符串,表示最终答案。

示例1

输入:

2 18
copypaste
4
3 6 8
1 5 2
4 12 1
17 18 0

输出:

ac

说明:

初始文本为copypaste。
第一次操作,将位置3到位置6之间的文本ypa复制到位置8,文本变为copypastypae。
第二次操作,将位置1到位置5之间的文本opyp复制到位置8,文本变为coopyppypastypae。
第三次操作,将位置4到位置12之间的文本yppypast复制到位置1,文本变为cyppypastoopyppypastypae。但是文本长度上限M=18,从右向左删除文本中字符至文本长度为18,文本变为cyppypastoopyppypa。
第四次操作,将位置17到位置18之间的文本a复制到位置0,文本变为acyppypastoopyppypa。但是文本长度上限M=18,从右向左删除文本中字符至文本长度为18,文本变为acyppypastoopyppyp。
最终,输出文本acyppypastoopyppyp的前K=2个字符,即为ac。

示例2

输入:

6 100
jjooii
3
5 6 2
4 6 1
1 2 3

输出:

joioji

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

上一题