문자열 게임
시간 제한1초메모리 제한512 MB
문자열 W와 S, 그리고 N개의 명령이 주어집니다. 각 명령은 S에서 W의 가장 왼쪽 또는 오른쪽 등장을 지우며, 성공한 명령 수와 최종 S를 구합니다.
문제
문자열 게임은 다음과 같이 진행된다.
- 알파벳 소문자로 이루어진 문자열 W가 주어진다.
- 알파벳 소문자로 이루어진 문자열 S가 주어진다.
- 문자열 S에서 문자열 W를 모두 제거하는 사람이 이긴다.
병서는 S에서 W를 모두 제거하는 프로그램을 만들려고 한다.
병서가 구상한 프로그램은 아래 명령 중 하나를 골라 수행하는 작업을 N번 반복한다.
- L: S의 왼쪽에서부터 처음으로 등장하는 W를 찾아, S에서 그 부분 문자열을 제거한다.
- R: S의 오른쪽에서부터 처음으로 등장하는 W를 찾아, S에서 그 부분 문자열을 제거한다.
명령을 수행할 때 S에 W가 없으면 명령은 실패하고 아무 일도 일어나지 않는다.
N개의 명령에 따라 S에서 W를 제거하는 프로그램을 만들어 보자!
입력
첫 번째 줄과 두 번째 줄에 길이가 1 이상인 문자열 W와 문자열 S가 각각 주어진다. W와 S는 알파벳 소문자로 이루어져 있다.
W는 최대 10자, S는 최대 300,000자이다.
세 번째 줄에 명령의 개수 N이 주어진다. (1 ≤ N ≤ 30,000)
네 번째 줄부터 N개의 줄에 명령이 주어진다.
출력
첫 번째 줄에 성공한 명령의 개수를, 두 번째 줄에 프로그램을 실행한 후의 문자열 S를 출력한다. 프로그램을 실행한 후 문자열 S가 비어 있는 경우는 없다.
세 번째 줄에 프로그램을 실행한 후 S에 W가 남아 있으면 You Lose!를, W를 모두 제거했으면 Perfect!를 출력한다.