Editor


문제 정보
check포인트 : 1 (부분 점수)
schedule시간 제한 : 0.3s
storage메모리 제한 : 512M
edit_square출제자:
 
답안 제출

한 줄짜리 텍스트 편집기를 흉내 내려고 한다. 이 편집기는 영어 소문자만 다루며, 최대 600,000글자까지 담을 수 있다.

편집기에는 '커서'가 있다. 커서는 문장의 맨 앞(첫 글자의 왼쪽), 맨 뒤(마지막 글자의 오른쪽), 또는 이웃한 두 글자 사이 어디든 올 수 있다. 즉 현재 문자열의 길이가 L이면 커서가 놓일 수 있는 위치는 L+1가지다.

지원하는 명령은 다음 네 가지다.

  • L : 커서를 왼쪽으로 한 칸 옮긴다. 커서가 이미 맨 앞이면 무시된다.
  • D : 커서를 오른쪽으로 한 칸 옮긴다. 커서가 이미 맨 뒤이면 무시된다.
  • B : 커서 바로 왼쪽의 글자를 지운다. 커서가 맨 앞이면 무시된다. 삭제 후 커서 오른쪽에 있던 내용은 그대로 유지된다.
  • P $ : 문자 $를 커서 바로 왼쪽에 끼워 넣는다.

편집기에 처음 들어 있는 문자열과 이후 실행할 명령들이 순서대로 주어질 때, 모든 명령을 끝낸 뒤 편집기에 남아 있는 문자열을 구하라. 명령 실행 전 커서는 문장의 맨 뒤에 있다.

입력

첫째 줄에 편집기의 초기 문자열이 주어진다. 이 문자열은 영어 소문자로만 이루어지며, 길이 N은 100,000을 넘지 않는다. 둘째 줄에 명령의 개수 M(1 ≤ M ≤ 500,000)이 주어지고, 이어지는 M개의 줄에 명령이 실행 순서대로 한 줄에 하나씩 주어진다. 명령은 본문에 소개된 네 형태 중 하나로만 주어진다.

출력

모든 명령을 처리한 뒤 편집기에 남아 있는 문자열을 한 줄에 출력한다.

예제 입력 1

abcd
3
P x
L
P y

예제 출력 1

abcdyx

예제 입력 2

abc
9
L
L
L
L
L
P x
L
B
P y

예제 출력 2

yxabc

예제 입력 3

dmih
11
B
B
P x
L
B
B
B
P y
D
D
P z

예제 출력 3

yxz

댓글

현재 작성된 댓글이 없습니다.