A96433.文字处理器

普及-

官方

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

给定一个初始字符串 ss(仅含小写英文字母),依次处理 QQ 次操作。共有五类操作:

  1. 1 t —— 把字符串 tt 追加到 ss 的末尾,然后输出当前 ss
  2. 2 pos t —— 在下标 pospos 位置之前插入字符串 tt00 为开头,s|s| 为末尾),然后输出当前 ss
  3. 3 pos len —— 从下标 pospos 开始删除长度为 lenlen 的子串(保证合法),然后输出当前 ss
  4. 4 old new —— 将 ss 中所有 oldold不重叠出现从左到右替换为 newnew,然后输出当前 ss。其中 oldold 保证非空,且本题限定 newnew 也必须非空
  5. 5 t —— 输出字符串 tt 在当前 ss第一次出现的下标(00 开始),若不存在则输出 1-1

说明:

  • 所有下标均为 00 开始。
  • 操作 1,2,3,41,2,3,4 输出当前 ss;操作 55 输出一个整数。
  • “不重叠出现”按从左到右扫描,匹配后跳过被匹配片段继续扫描。

输入格式

第一行:初始字符串 ss
第二行:一个整数 QQ
接下来 QQ 行:每行一条操作,格式如题目描述所示。

输出格式

共输出 QQ 行:

  • 对于操作 1,2,3,41,2,3,4,输出当前的 ss
  • 对于操作 55,输出匹配到的下标或 1-1

输入输出样例

  • 输入#1

    hello
    4
    2 0 hi
    4 l x
    5 hihe
    3 2 3
    

    输出#1

    hihello
    hihexxo
    0
    hixo

说明/提示

  • 1s1051 \le |s| \le 10^5

  • 1Q2×1051 \le Q \le 2\times 10^5

  • 所有出现的字符串均为非空的小写英文字母串;

  • 操作 220poss0 \le pos \le |s|

  • 操作 33 中保证 0posslen0 \le pos \le |s|-len

  • 操作 44oldoldnewnew 均非空;

  • 为保证可运行性,测试时保证所有操作合法,且在整个过程中「ss 的长度」与「累计插入/追加/替换产生的新文本总长度」均不超过 2×1052\times 10^5

首页