문제
일련의 문자열이 주어진다.
문자열 내부에는 커서가 위치하고 있다.
주어지는 명령에 따라 다음과 같을 작업을 처리해야 한다.
L 커서를 한 문자 왼쪽으로 이동한다. (커서가 시작 부분에 있으면 아무 것도 수행하지 않음)
D 커서를 한 문자 오른쪽으로 이동한다. (커서가 끝에 있으면 아무 것도 수행하지 않음)
B 커서 왼쪽의 문자를 삭제한다. (커서가 시작 부분에 있으면 아무 것도 수행하지 않음)
P $ 커서의 위치에 문자 $ 추가한다. (문자 $는 영어 알파벳의 소문자 임)
커서의 처음 위치는 초기에 주어진 문자열의 끝에 있다.
주어진 작업을 실행 한 후 텍스트가 어떻게 보일지 결정하는 프로그램을 작성하시오.
입력
첫번째 행에는 초기 문자열이 주어진다.
초기 문자열은 길이가 N (1 <= N <= 100,000)이고, 영어 소문자로만 이루어져 있다.
두번째 행에는 명령의 개수를 나타내는 정수 M(1 ≤ M ≤ 500,000)이 주어진다.
세번째 행부터 M개의 행에 명령이 주어진다.
출력
첫 번째 행에 모든 작업을 실행 한 후 문자열을 출력한다.
예제 #1
abcd
3
P x
L
P y
abcdyx
예제 #2
abc
9
L
L
L
L
L
P x
L
B
P y
yxabc
예제 #3
dmih
11
B
B
P x
L
B
B
B
P y
D
D
P z
yxz
출처
Croatian Highschool Competitions in Informatics 2004 National Competition #1 - Juniors 2번