아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

단어

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

요약
길이 n인 이진 단어에 순환 재작성 규칙을 s번 적용한 뒤, 사전순으로 가장 작은 회전 형태를 출력한다.
난이도

보통10점 중 7점

유형
문자열, 시뮬레이션, 수학, 완전 탐색
정답자
아직 제출이 없습니다

문제

Wright 박사의 수업에서 변형된 L-시스템을 공부하고 있다. 필요한 내용은 다음과 같다.

두 글자 알파벳 {a,b}\{a, b\} 위에서 길이가 nn인 단어를 생각한다. 이 단어는 순환(cyclic) 단어로, nn가지 순환 이동(cyclic shift) 형태 중 어느 것으로도 쓸 수 있으며, 첫 글자와 마지막 글자는 서로 이웃으로 취급한다.

재작성 규칙은 위치 ii의 글자를 위치 i−2i-2, ii, i+1i+1의 글자에 따라 바꾼다(인덱스는 순환으로 계산한다). 한 단계에서 단어의 모든 글자를 동시에 재작성한다.

시작 단어와 재작성 규칙의 집합이 주어질 때, ss번 재작성한 뒤 단어가 어떤 모습인지 구하여라.

입력

입력은 여러 개의 블록으로 이루어지며, 각 블록은 하나의 시스템을 설명한다.

  • 첫째 줄에는 단어의 길이를 나타내는 정수 nn이 주어진다 (2<n<162 < n < 16).
  • 둘째 줄에는 시작 단어가 주어지며, 소문자 a와 b로만 이루어져 있다.
  • 그다음 여덟 줄에는 각각 네 글자 c1c2c3c4c_1 c_2 c_3 c_4가 주어지며, 하나의 재작성 규칙을 나타낸다. 위치 i−2i-2의 글자가 c1c_1, 위치 ii의 글자가 c2c_2, 위치 i+1i+1의 글자가 c3c_3이면, 재작성 후 위치 ii의 글자는 c4c_4가 된다. 여덟 개의 규칙은 올바르고 완전하다(c1c2c3c_1 c_2 c_3의 모든 조합을 빠짐없이 덮는다).
  • 블록의 마지막 줄에는 정수 ss가 주어진다 (0≤s≤20000000000 \le s \le 2000000000).

입력의 끝까지 모든 블록을 처리한다.

출력

각 블록마다 한 줄에 ss번 재작성한 뒤의 단어를 출력한다. 단어는 순환 단어이므로 nn가지 이동 형태로 쓸 수 있는데, a < b라고 할 때 그중 사전순으로 가장 작은 형태를 출력한다.

예제2

  1. 예제 1

    입력
    5
    aaaaa
    aaab
    aabb
    abab
    abbb
    baab
    babb
    bbab
    bbbb
    1
    
    예상 출력
    bbbbb
    
  2. 예제 2

    입력
    6
    baaaab
    aaaa
    aaba
    abab
    abbb
    baaa
    baba
    bbab
    bbbb
    0
    
    예상 출력
    aaaabb