만드는 중입니다

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

편지

시간 제한2초메모리 제한512 MB

요약
최대 10^12번 반복되는 교환 및 알파벳 이동 규칙 목록을 문자열에 적용한 뒤 최종 내용을 출력한다.
난이도

보통10점 중 5점

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

문제

현수는 요즘 "Bell"이라는 게임을 즐겨 한다. "Bell" 게임에서는 상대방에게 영문 대문자로 이루어진 편지를 보낼 수 있는데, 편지의 내용을 입력하면 특이하게도 편지 자체가 조종할 수 있는 캐릭터가 된다. 캐릭터가 이동하는 도중에는 장애물이 등장하는데, 장애물과 부딪히면 편지가 데미지를 입으며 아래 두 규칙 중 하나에 따라 내용이 바뀐다.

  • 편지의 서로 다른 위치의 문자 2개를 교환한다.
  • 편지의 특정 위치의 문자를, 그 문자로부터 알파벳 순서로 xx번째 뒤에 오는 문자로 변경한다. Z 뒤에는 다시 A가 온다.

게임이 시작될 때마다 편지를 변경하는 규칙 목록이 무작위로 생성된다. 이 규칙은 캐릭터가 데미지를 입을 때마다 목록 순서대로 적용되며, 목록의 끝에 도달하면 다시 처음으로 돌아간다. 수식으로 표현하면, 규칙 목록의 길이가 CC이고 현재 입은 데미지가 ii번째 데미지일 때, 편지에는 ((i−1) mod C)+1((i - 1)\bmod C) + 1번째 규칙이 적용된다.

현수의 원래 편지 내용, 규칙 목록, 편지가 데미지를 입은 횟수가 주어질 때, 모든 데미지를 입은 후의 편지 내용을 구하는 프로그램을 작성해 보자.

입력

첫 번째 줄에는 공백을 사이에 두고 현수가 작성한 편지의 길이 NN, 규칙 목록의 길이 CC, 데미지를 입은 횟수 KK가 정수로 주어진다. (1≤N≤100,1≤C≤105,1≤K≤1012)(1 \le N \le 100, 1 \le C \le 10^5, 1 \le K \le 10^{12})

두 번째 줄에는 현수가 작성한 편지가 길이 NN의 문자열로 주어진다.

세 번째 줄부터 CC개의 줄에 걸쳐 규칙 목록이 주어진다. 규칙은 다음 두 형태 중 하나이며, index는 0부터 시작한다.

  • S i j : 편지의 ii번째 index와 jj번째 index의 문자를 교환한다. (0≤i,j<N,i≠j)(0 \le i, j \lt N, i \ne j)
  • A i x : 편지의 ii번째 index의 문자를 그 문자의 xx번째 뒤에 오는 문자로 변경한다. (0≤i<N,1≤x≤25)(0 \le i \lt N, 1 \le x \le 25)

출력

KK번 데미지를 입은 후의 편지 내용을 출력한다.

예제3

  1. 예제 1

    입력
    5 2 2
    HELLO
    S 0 4
    A 0 7
    
    예상 출력
    VELLH
    
  2. 예제 2

    입력
    6 4 5
    INDROA
    S 2 5
    A 0 3
    S 0 2
    A 2 4
    
    예상 출력
    ANDROP
    
  3. 예제 3

    입력
    19 13 317995470
    FRUITCAKEANDCOOKIES
    A 6 3
    S 3 6
    A 1 4
    A 3 7
    S 6 9
    S 6 8
    A 11 5
    S 9 12
    A 8 3
    S 7 14
    S 14 16
    A 10 5
    A 0 2
    
    예상 출력
    FRUITCAKEANDCOOKIES