#P1802. Ancient Plates

    ID: 803 远端评测题 1000ms 30MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>TUD Programming Contest 2003DarmstadtGermany

Ancient Plates

本题没有可用的提交语言。

描述

背景

几十年前,考古学家在一座古庙中发现了刻有文字的石板。虽然考古学家认识石板上使用的符号,但到目前为止,整体文本的加密方式仍是个谜。然而,就在去年,在与第一座庙相同的区域又发现了另一座庙。这座庙的内部与第一座非常相似,因此人们认为它们是同一时期建造的。第二座庙中也有石板,但这些石板上的内容看起来大不相同。经过一年的研究,考古学家提出了一种理论,认为这些石板包含了解读第一座庙中石板上文字所需的密码。

问题

你的任务是编写一个程序,通过应用考古学家提出的规则来自动解密石板上的文字。

规则有两种类型:PERMSHIFT。这两种规则都适用于以下目标之一:文本的行(L)、单词(W)或字符(C)。

PERM 规则由字符串 PERM 后跟一个空格、一个表示目标的字母,以及一个或多个由空格分隔的索引对组成。一个索引对 iijj 由两个正整数 iijj 组成,它们之间仅用逗号分隔。

根据目标,PERM 规则对于从左到右的每个索引对 iijj 应执行以下操作:

  • L:交换第 ii 行和第 jj 行;
  • W:在所有行中交换第 ii 个和第 jj 个单词;
  • C:在所有行的所有单词中交换第 ii 个和第 jj 个字符。

如果至少有一个要交换的对象不存在,则跳过此交换。例如:PERM W 2,7 要求你在所有行中交换第二个和第七个单词,但可能存在只有五个单词的行。那么在该行中不进行任何操作,但在所有至少有七个单词的其他行中执行交换。

SHIFT 规则由字符串 SHIFT、一个空格、表示目标的字母、另一个空格和一个整数 kk 组成。如果 k=1k = 1 [k=1k = -1],你应根据目标执行以下操作:

  • L:将所有行向上 [向下] 移动一行,第一行 [最后一行] 变为最后一行 [第一行];
  • W:将所有行中的所有单词向左 [向右] 移动一个单词,每行的第一个 [最后一个] 单词变为最后一个 [第一个] 单词;
  • C:将所有行中所有单词的所有字符向左 [向右] 移动一个字符,每个单词的第一个 [最后一个] 字符变为最后一个 [第一个] 字符。

如果 k0k \geq 0 [k0k \leq 0] 是任意整数,则将上述 k=1k = 1 [k=1k = -1] 的操作执行 k|k| 次。

输入

输入的第一行包含场景的数量,即需要解密的石板数量。

对于每个这样的石板,首先在一行中给出要解密的石板上文本的行数 ll0l10000 \leq l \leq 1000)。在接下来的 ll 行中给出该文本,每行不超过 1000 个字符。之后,有一行包含需要应用的规则数量 rr0r10000 \leq r \leq 1000)。随后的 rr 行包含这些规则,格式如上所述。

文本中的单词被视为由单个空格分隔的任意字符序列(不仅仅是字母)。给定文本的任何一行都不会以空格开头或结尾,但可能完全为空。

输出

为每个场景的输出开头添加一行,内容为 "Scenario #ii:",其中 ii 是从 1 开始的场景编号。然后打印 ll 行,包含应用所有规则后的文本。在每个场景后再打印一个空行。

输入示例 1

2
3
First line.
Second line.
Third line.
1
SHIFT L -1
6
ettypr ante e.aid era a
lsemi is an btiingOr itsh at a satncedi of uhglyro nten-twoyi lilonmi
rgeurdedan lolwye ns.u setrnwe iarlsp mra of eht lxayGa elsi a allsm
oeswh ed-dsceneedap flei trelyut sgiaificnntin tlteli ubel enegr aentpl
dne of eht raF tuo in eht cahntedur cwkbtersaa of eht fsabionahleun
iknth gtialdi thceswa rsmfo era so aizmglyan iimrivept atth etyh illst
5
SHIFT W 3
PERM C 4,9 2,3
SHIFT C -2
SHIFT L 1
PERM L 3,9 3,4 1,3

输出示例 1

Scenario #1:
Third line.
First line.
Second line.

Scenario #2:
Far out in the uncharted backwaters of the unfashionable end of the
western spiral arm of the Galaxy lies a small unregarded yellow sun.
Orbiting this at a distance of roughly ninety-two million miles is an
utterly insignificant little blue green planet whose ape-descended life
forms are so amazingly primitive that they still think digital watches
are a pretty neat idea.

来源

TUD Programming Contest 2003, Darmstadt, Germany