P4567 [AHOI2006]文本编辑器

    • 164通过
    • 723提交
  • 题目提供者
  • 评测方式 云端评测
  • 标签 各省省选 2006 安徽
  • 难度 NOI/NOI+/CTSC
  • 时空限制 3000ms / 128MB

题解

  • 提示:收藏到任务计划后,可在首页查看。
  • 体验新版界面

    最新讨论 显示

    推荐的相关题目 显示

    题目描述

    这些日子,可可不和卡卡一起玩了,原来可可正废寝忘食的想做一个简单而高效的文本编辑器。你能帮助他吗?为了明确任务目标,可可对“文本编辑器”做了一个抽象的定义:

    • Move k:将光标移动到第走个字符之后,如果k=0,将光标移到文本第一个字符之前。
    • Insert n (换行) S:在光标后插入长度为n的字符串S,光标位置不变,$n \ge 1$。
    • Delete n:删除光标后的n个字符,光标位置不变,$n \ge 1$。
    • Rotate n:反转光标后的n个字符,光标位置不变,$n \ge 1$。
    • Get:输出光标后的以个字符,光标位置不变。
    • Prev:光标前移一个字符。
    • Next:光标后移一个字符。

    下面是几个定义:

    • 文本:由0个或多个字符构成的序列。这些字符的ASCII码在闭区间[32, 126]内,也就是说,这些字符均为可见字符或空格。
    • 光标:在一段文本中用于指示位置的标记,可以位于文本的第一个字符之前,文本的最后一个字符之后或文本的某两个相邻字符之间。
    • 文本编辑器:为一个可以对一段文本和该文本中的一个光标进行如下七条操作的程序。如果这段文本为空,我们就说这个文本编辑器是空的。

    编写一个程序:

    1. 建立一个空的文本编辑器。
    2. 从输入文件中读入一些操作指令并执行。
    3. 对所有执行过的GET操作,将指定的内容写入输出文件。

    输入输出格式

    输入格式:

    输入文件中第一行是指令条数N,以下是需要执行的N个操作。除了回车符之外,输入文件的所有字符的ASCII码都在闭区间[32, 126]内。且行尾没有空格。

    输出格式:

    依次对应输入文件中每条GET指令的输出,不得有任何多余的字符。

    输入输出样例

    输入样例#1: 复制
    10
    Insert 13
    Balanced eert
    Move 2
    Delete 5
    Next
    Insert 7
    editor
    Move 0
    Get
    Move 11
    Rotate 4
    Get
    输出样例#1: 复制
    B
    t

    说明

    对输入数据我们有如下假定:

    1. MOVE操作不超过$50 000$个,INSERT、DELETE和ROTATE操作作的总个数不超过$6 000$,GET操作不超过$20 000$个,PREV和NEXT操作的总个数不超过$20 000$。
    2. 所有INSERT插入的字符数之和不超过2M(1M=1 024*1 024)。
    3. DELETE操作、ROTATE操作和GET操作执行时光标后必然有足够的字符。MOVE、PREV、NEXT操作不会把光标移动到非法位置。
    4. 输入文件没有错误。
    提示
    标程仅供做题后或实在无思路时参考。
    请自觉、自律地使用该功能并请对自己的学习负责。
    如果发现恶意抄袭标程,将按照I类违反进行处理。