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

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

문자열 함수 인코딩

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

요약
주어진 접미사와 문자열을 이어 붙이는 연산을 각 문자열에 C번 적용한 결과를 출력합니다.
난이도

쉬움10점 중 2점

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

문제

Bessie가 온 무리가 문자열에 적용할 수 있는 새로운 함수를 발견했습니다.

음이 아닌 정수 NN과 길이가 NN보다 큰 문자열 SS가 주어질 때, 함수 f(N,S)f(N, S)를 다음과 같이 정의합니다. SS에서 인덱스 NN(0-기반, 즉 첫 번째 문자의 인덱스가 00)부터 끝까지의 부분 문자열 뒤에 문자열 SS 전체를 이어 붙인 문자열입니다.

예를 들어 N=2N = 2, S=S = COW이면 f(N,S)=f(N, S) = W + COW = WCOW입니다. 마찬가지로 f(3,f(3, USACO )=) = CO + USACO = COUSACO입니다.

Bessie는 이 함수를 반복해서 적용하고 싶어 하며, 매 단계마다 같은 NN을 현재 문자열에 적용합니다. 예를 들어 COW에서 N=2N = 2로 시작하면, 한 번 적용하면 WCOW, N=2N = 2로 한 번 더 적용하면 OWWCOW, 다시 한 번 더 적용하면 WCOWOWWCOW가 됩니다.

Bessie가 ZZ개의 문자열 str1,str2,…,strZstr_1, str_2, \dots, str_Z를 인코딩하도록 도와주세요. 각 문자열 stristr_i에는 고유한 값 NiN_i와 반복 횟수 CiC_i가 함께 주어집니다. stristr_i에 함수 f(Ni,⋅)f(N_i, \cdot)를 정확히 CiC_i번 적용한 최종 문자열을 출력하세요.

제약 조건:

  • 1≤Z≤1001 \le Z \le 100
  • 각 stristr_i의 길이는 22 이상 100100 이하이며 대문자로만 이루어져 있습니다.
  • 0≤Ni<length⁡(stri)0 \le N_i < \operatorname{length}(str_i)
  • 1≤Ci≤121 \le C_i \le 12

입력

  • 첫째 줄: 정수 ZZ.
  • 둘째 줄부터 Z+1Z + 1째 줄까지: i+1i + 1째 줄에는 공백으로 구분된 두 정수와 문자열, 즉 NiN_i, CiC_i, stristr_i가 주어집니다.

출력

  • 첫째 줄부터 ZZ째 줄까지: jj째 줄에는 strjstr_j에 함수를 총 CjC_j번 적용해 인코딩한 문자열을 출력합니다.

힌트

화살표는 함수를 한 번 적용하는 것을 나타냅니다.

  • N=2N = 2일 때: COW → WCOW → OWWCOW → WCOWOWWCOW
  • N=3N = 3일 때: USACO → COUSACO → SACOCOUSACO

예제3

  1. 예제 1

    입력
    2
    2 3 COW
    3 2 USACO
    
    예상 출력
    WCOWOWWCOW
    SACOCOUSACO
    
  2. 예제 2

    입력
    1
    2 1 COW
    
    예상 출력
    WCOW
    
  3. 예제 3

    입력
    3
    0 1 HELLO
    4 3 WORLD
    2 2 ABCDE
    
    예상 출력
    HELLOHELLO
    ORLDLDDWORLD
    EABCDECDEABCDE