AC

면접 대비

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

요약
정수 배열에 R(뒤집기)과 D(앞 원소 버리기) 명령을 순서대로 적용해 결과를 출력하고, 빈 배열에 D를 쓰면 error를 출력한다.
난이도

보통10점 중 4점

유형
구현, 배열, 투 포인터
정답자
아직 제출이 없습니다

문제

선영이는 정수 배열을 다루기 위한 언어 AC를 만들었다. 이 언어에는 두 가지 함수 R과 D가 있다.

  • R(뒤집기): 배열에 들어 있는 수의 순서를 뒤집는다.
  • D(버리기): 배열의 첫 번째 수를 버린다. 배열이 비어 있는 상태에서 D를 사용하면 에러가 발생한다.

함수는 이어 붙여서 한 번에 사용할 수 있다. 예를 들어 RDD는 배열을 한 번 뒤집은 다음, 앞에서 두 개의 수를 버리는 함수이다.

배열의 초기 상태와 수행할 함수 문자열이 주어졌을 때, 함수를 모두 적용한 뒤의 최종 배열을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다. (T≤100T \le 100)

각 테스트 케이스는 세 줄로 이루어진다.

  • 첫째 줄: 수행할 함수 문자열 pp. pp는 R과 D로만 이루어지며 길이는 1≤∣p∣≤1000001 \le |p| \le 100000이다.
  • 둘째 줄: 배열에 들어 있는 수의 개수 nn. (0≤n≤1000000 \le n \le 100000)
  • 셋째 줄: [x1,x2,...,xn] 형태로 주어지는 배열의 원소. (1≤xi≤1001 \le x_i \le 100) 배열이 비어 있으면 []로 주어진다.

모든 테스트 케이스에서 pp의 길이의 합과 nn의 합은 각각 700,000을 넘지 않는다.

출력

각 테스트 케이스마다 함수를 모두 적용한 결과 배열을 [x1,x2,...,xn] 형태로 한 줄에 출력한다. 원소 사이에는 공백 없이 쉼표만 넣는다. 처리 도중 비어 있는 배열에 D를 적용해 에러가 발생하면 대신 error를 출력한다.

예제2

  1. 예제 1

    입력
    4
    RDD
    4
    [1,2,3,4]
    DD
    1
    [42]
    RRD
    6
    [1,1,2,3,5,8]
    D
    0
    []
    
    예상 출력
    [2,1]
    error
    [1,2,3,5,8]
    error
    
  2. 예제 2

    입력
    1
    R
    3
    [1,2,3]
    
    예상 출력
    [3,2,1]