SZC2026#919. 文字处理软件

提交0 通过0
通过率0%
时间限制1000ms
内存限制256MiB

题目描述

题目背景

请实现一个简化的文字处理程序。程序维护一份不含空格的文档,并按照输入顺序执行追加、截取、插入和查找操作。

题目描述

字符串下标从 00 开始。设当前文档为字符串 SS,需要支持以下四种操作:

  1. 1 str:把字符串 str 追加到 SS 的末尾,然后输出修改后的 SS
  2. 2 a b:只保留 SS 中从下标 aa 开始、连续的 bb 个字符,然后输出截取后的 SS
  3. 3 a str:在 SS 原下标 aa 所指字符的前面插入 str,然后输出修改后的 SS。当 a=0a=0 时表示插到最前面;
  4. 4 str:在 SS 中查找连续子串 str 第一次出现的起始下标。找到则输出该下标,否则输出 1-1。此操作不修改 SS

所有操作均按给定顺序执行,后一次操作处理的是前一次操作结束后的文档。

输入格式

第一行一个整数 qq,表示操作次数。

第二行一个不含空格的字符串,表示初始文档。

接下来 qq 行,每行描述一次操作,格式与题目描述中的四种格式之一相同。

输出格式

共输出 qq 行,每次操作对应一行:

  • 操作 1,2,31,2,3 输出修改后的完整文档;
  • 操作 44 输出第一次匹配位置,找不到时输出 1-1

数据范围与约定

  • 1q1001\le q\le100
  • 初始字符串长度不超过 100100
  • 初始字符串以及操作中的 str 均不含空格和换行;
  • 所有截取和插入位置均合法;
  • 下标从 00 开始,截取的第二个参数 bb 表示字符数量,不是结束下标。

样例输入

4
abc
1 bcyb
2 1 6
3 0 q
4 bcb

样例输出

abcbcyb
bcbcyb
qbcbcyb
1

样例说明

第一次操作将 bcyb 追加到 abc 后。第二次操作从下标 11 开始保留 66 个字符。第三次操作在文档开头插入 q。最后,子串 bcb 第一次出现的位置是下标 11