만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

고대 석판

시간 제한1초메모리 제한128 MB

요약
주어진 PERM과 SHIFT 규칙을 텍스트의 줄, 단어, 문자에 적용한 뒤 결과를 출력한다.
난이도

쉬움10점 중 3점

유형
구현, 시뮬레이션, 배열
정답자
아직 제출이 없습니다

문제

수십 년 전, 고고학자들은 어느 고대 신전에서 문자로 뒤덮인 석판을 발견했다. 사용된 기호 자체는 이미 알려져 있었지만, 글 전체가 어떻게 암호화되었는지는 오랫동안 수수께끼로 남아 있었다. 그런데 작년, 첫 번째 신전과 같은 지역에서 또 다른 신전이 발견되었다. 내부 구조가 첫 번째와 매우 비슷해 같은 시기에 지어진 것으로 여겨진다. 두 번째 신전에도 석판이 있었으나 그 내용은 사뭇 달랐다. 1년간의 연구 끝에, 고고학자들은 이 두 번째 석판들이 첫 번째 신전의 글을 해독하는 데 필요한 규칙(코드)을 담고 있다는 가설을 세웠다.

여러분의 임무는 고고학자들이 제안한 규칙을 적용해 석판에 적힌 글을 해독하는 과정을 자동화하는 프로그램을 작성하는 것이다.

규칙에는 두 종류가 있다: PERM과 SHIFT. 두 규칙 모두 다음 세 가지 대상 중 하나에 적용된다: 글의 줄(L), 단어(W), 문자(C).

PERM 규칙은 문자열 PERM, 공백 한 칸, 대상을 나타내는 문자, 그리고 공백으로 구분된 하나 이상의 인덱스 쌍으로 이루어진다. 각 인덱스 쌍 i,j는 두 양의 정수 ii와 jj를 쉼표 하나로 이어 붙인 것이다.

대상에 따라, PERM 규칙은 각 인덱스 쌍 i,ji, j에 대해 왼쪽에서 오른쪽 순서로 다음을 수행한다:

  • L: ii번째 줄과 jj번째 줄을 서로 바꾼다.
  • W: 모든 줄에서 ii번째 단어와 jj번째 단어를 서로 바꾼다.
  • C: 모든 줄의 모든 단어에서 ii번째 문자와 jj번째 문자를 서로 바꾼다.

교환할 대상 중 하나라도 존재하지 않으면 그 교환은 건너뛴다. 예를 들어 PERM W 2,7은 모든 줄에서 2번째와 7번째 단어를 바꾸라는 뜻이지만, 어떤 줄에는 단어가 다섯 개뿐일 수 있다. 그런 줄에서는 아무것도 하지 않고, 단어가 일곱 개 이상인 다른 모든 줄에서만 교환을 수행한다.

SHIFT 규칙은 문자열 SHIFT, 공백 한 칸, 대상 문자, 공백 한 칸, 그리고 정수 kk로 이루어진다. 이 규칙은 대상을 ∣k∣|k|번 이동시키며, k>0k > 0이면 왼쪽(줄의 경우 위쪽) 방향, k<0k < 0이면 오른쪽(줄의 경우 아래쪽) 방향으로 이동한다. 한 번의 이동은 다음과 같다:

  • L: 왼쪽(위) 이동이면 모든 줄이 한 줄씩 위로 올라가고 첫 줄이 마지막 줄이 된다. 오른쪽(아래) 이동이면 모든 줄이 한 줄씩 내려가고 마지막 줄이 첫 줄이 된다.
  • W: 왼쪽 이동이면 각 줄의 단어가 한 칸씩 왼쪽으로 가고 첫 단어가 마지막 단어가 된다. 오른쪽 이동이면 그 반대이다.
  • C: 왼쪽 이동이면 각 단어의 문자가 한 칸씩 왼쪽으로 가고 첫 문자가 마지막 문자가 된다. 오른쪽 이동이면 그 반대이다.

k=0k = 0이면 아무 이동도 하지 않는다.

입력

첫째 줄에는 시나리오의 수, 즉 해독해야 할 석판의 개수가 주어진다.

각 석판마다, 먼저 해독할 글의 줄 수 ll (0≤l≤1000)(0 \le l \le 1000)이 한 줄에 주어진다. 이어지는 ll개의 줄에 그 글이 주어지며, 각 줄의 길이는 1000자를 넘지 않는다. 그다음 줄에는 적용할 규칙의 수 rr (0≤r≤1000)(0 \le r \le 1000)이 주어지고, 이어지는 rr개의 줄에 위에서 설명한 형식의 규칙들이 주어진다.

글의 단어는 (알파벳뿐 아니라) 임의의 문자들이 공백 하나로 구분된 수열로 간주한다. 주어지는 글의 어떤 줄도 공백으로 시작하거나 끝나지 않지만, 줄 전체가 비어 있을 수는 있다.

출력

각 시나리오의 출력은 Scenario #i: 형태의 줄로 시작한다. 여기서 ii는 1부터 시작하는 시나리오 번호이다. 그다음 모든 규칙을 적용한 뒤의 글 ll개의 줄을 출력한다. 연속한 두 시나리오 사이는 빈 줄 하나로 구분한다.

예제1

  1. 예제 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
    
    예상 출력
    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.