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

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

검열

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

요약
문자열 S에서 금지된 단어 중 가장 앞에 나타난 것을 반복해 지우고 남은 문자열을 출력합니다.
난이도

보통10점 중 7점

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

문제

잡지 한 호의 본문을 모두 이어 붙여 소문자로만 이루어진 문자열 SS를 만들었다. 이 잡지에 실려서는 안 되는 단어가 있어서, 검열 단어 t1t_1부터 tNt_N까지를 SS에서 지우려고 한다.

검열은 다음과 같이 진행한다. SS 안에서 검열 단어가 나타나는 위치 중 시작 인덱스가 가장 작은 것을 찾아 그 부분을 지운다. 검열 단어가 하나도 남지 않을 때까지 이 과정을 반복한다. 한 단어를 지우면 앞뒤 글자가 맞붙어 전에 없던 검열 단어가 새로 생기기도 한다.

어떤 검열 단어도 다른 검열 단어의 부분 문자열이 아니다. 따라서 매 단계에서 시작 인덱스가 가장 작은 위치는 하나로 정해진다.

검열이 끝난 뒤의 SS를 구하라.

입력

첫째 줄에 문자열 SS가 주어진다. SS는 알파벳 소문자로만 이루어지고 길이는 10510^5 이하이다.

둘째 줄에 검열 단어의 개수 NN이 주어진다.

이어지는 NN개의 줄에 검열 단어 t1t_1부터 tNt_N까지가 순서대로 한 줄에 하나씩 주어진다. 각 단어는 알파벳 소문자로만 이루어지고, NN개 단어의 길이 합은 10510^5 이하이다.

출력

검열을 모두 마친 뒤의 SS를 출력한다. 검열 도중 SS가 빈 문자열이 되는 경우는 없다.

예제4

  1. 예제 1

    입력
    begintheescapexecutionatthebreakofdawn
    2
    escape
    execution
    
    예상 출력
    beginthatthebreakofdawn
    
  2. 예제 2

    입력
    xaabbx
    1
    ab
    
    예상 출력
    xx
    
  3. 예제 3

    입력
    abcdefg
    3
    hij
    klm
    xyz
    
    예상 출력
    abcdefg
    
  4. 예제 4

    입력
    abababa
    1
    b
    
    예상 출력
    aaaa