QOJ.ac

QOJ

حد الوقت: 1.0 s حد الذاكرة: 2048 MB مجموع النقاط: 100

#15670. 我被夏洛克迷住了

الإحصائيات

苏格兰场(伦敦警察厅总部)的侦探们向夏洛克·福尔摩斯通报了詹姆斯·莫里亚蒂对中央银行发起的一起网络攻击。他们还发现有一个秘密代码可以阻止这次攻击。根据他们的顶级特工,莫里亚蒂将代码藏在了他的一位客户的电话簿中。有趣的是,夏洛克正好可以接触到这位神秘的客户!

已知每个正确的电话号码都有 11 位数字,并且以一个前导零数字开头。莫里亚蒂的客户可能会用连字符(“-”)或空格字符分隔每个电话号码的数字。在笔记本中,甚至某些电话号码可能会缺失前导零。例如,电话号码 “09163264128” 可能会被写成 “916 32 64 128”,甚至 “- 0916-16-32--64 - 128-”。夏洛克不知道电话簿的具体内容,但根据他以往的知识,他知道所有者是如何书写电话号码的。

夏洛克在一家咖啡馆里安排了与电话簿所有者的友好交谈。与此同时,夏洛克的同事约翰·华生医生偷偷拿走了电话簿。夏洛克指示华生医生将电话簿清理成他电脑中的一个新的、干净的数字字符序列 $C$。该序列是 0 索引的,即第一个元素的索引为 0。为此,华生医生应该将电话号码连续输入(不含任何非数字/分隔字符)到他的电脑中,输入顺序与它们在电话簿中出现的顺序相同。为了清理电话号码,他应该删除所有非数字字符,并在必要时添加前导零。

根据他们的计划,夏洛克应该与这位神秘客户进行非正式的交谈。一旦他发现任何关于代码的信息,他就会发短信给华生医生。为此,华生医生已经准备好了清理后的序列 $C$,并将光标放在了起始字符处。该光标可以放置在 $C$ 的任何字符之前。他应该等待夏洛克的指令来生成输出序列 $S$。

夏洛克假设华生医生已经制作好了清理后的序列 $C$,并根据该序列发送以下指令之一:

  1. go i:将光标移动到 $C$ 中第 $i$ 个清理后的电话号码的开头。例如,要跳转到 $C$ 中的第一个电话号码,他将使用 “go 0”。
  2. forward i:将光标向前移动 $i$ 个数字。
  3. backward i:将光标向后移动 $i$ 个数字。
  4. next i:从当前位置开始,将接下来的 $i$ 个数字写入 $S$。更具体地说,如果华生医生的光标在位置 $c$ 之前,他应该选择数字 $c, c+1, \dots, c+i-1$,但光标的位置保持不变。
  5. pick i j:如果 $i < j$,将当前电话号码(即光标后面的数字所属的电话号码)中从位置 $i$ 到 $j$($i, i+1, \dots, j$)的数字写入 $S$。否则,他应该写入($i, i-1, \dots, j$)位置的数字。同样,光标的位置保持不变。注意,$0 \le i, j \le 10$ 且 “pick 0 0” 将选择第一个数字。

为了进行任何修正,夏洛克也可能发送以下指令:

  • delete i:从 $S$ 的末尾删除最后 $i$ 个数字。

输入格式

输入由电话簿的内容和夏洛克的指令组成。电话簿包含 $n$ 个电话号码($1 \le n \le 1000$),由逗号或换行符分隔。电话簿中的每个电话号码都是一个字符串,由 10 或 11 位数字(0-9)以及可能存在的连字符(“-”)和/或空格字符组成。电话簿的大小(即电话簿中的字符数)不会超过 $10^6$ 个字符。电话号码列表以包含单个字符 “#” 的行结束。

接下来的每一行包含夏洛克的一条指令。他最多会发送 $10\,000$ 条指令。所有指令的参数都是不大于 $20\,000$ 的非负整数。保证夏洛克的所有文本都符合上述六种指令之一的格式。

输出格式

输出提取出的秘密代码(可能为空),它是一个数字字符串。如果提取出的秘密代码超过 $10\,000$ 位,只需输出前 $10\,000$ 位。夏洛克可能会分心并发送错误的指令。他可能会跳转到一个不存在的电话号码(使用 “go”),或者为 “forward”、“backward”、“next”、“pick” 和 “delete” 发送无效的参数,即指令指向了清理后的序列 $C$ 中不存在的数字或电话号码。在这些情况下,你发现莫里亚蒂已经得逞,并用大写字母输出 “MISS ME!”。

样例

输入样例 1

0912 358 8908
0872-3344567,0989112-2345
9899988782
#
go 0
pick 0 3
next 4
forward 12
next 2
backward 2
pick 0 1
go 3
pick 0 1
delete 1

输出样例 1

0912091287090

输入样例 2

09242424024
00188990376
#
go 2
next 4
delete 1

输出样例 2

MISS ME!

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.