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

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

버그 잡는 꿍

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

요약
주어진 버그 문자열이 더 이상 나타나지 않을 때까지 각 소스 줄에서 가장 앞선 버그를 반복해서 지우고 결과를 출력한다.
난이도

보통10점 중 6점

유형
스택, 문자열, 구현
정답자
아직 제출이 없습니다

문제

모든 버그(bug)가 곤충을 뜻하는 것은 아니다. 개발자에게는 악몽 같은 버그도 있다. 바로 "네가 짠 프로그램에서 버그가 발견됐다"라고 할 때의 그 버그다. 알다시피 버그는 아무리 없애도 자꾸만 다시 나타난다.

그래서 최근 "버그 잡는 꿍"이라는 꽤 유용한 도구가 등장했다. 이 프로그램은 소스 코드에 들어 있는 모든 버그를 찾아 제거한다. 여러분은 이 "버그 잡는 꿍" 프로그램을 직접 구현해야 한다. 즉, 주어진 소스 코드에서 버그를 나타내는 문자열이 더 이상 남지 않을 때까지 모두 제거하면 된다.

입력

입력은 파일의 끝까지 여러 개의 테스트 케이스로 구성된다.

각 테스트 케이스는 정수 TT (0≤T≤100 0000 \le T \le 100\,000), 공백 한 칸, 그리고 버그를 나타내는 문자열 BB가 이어지는 한 줄로 시작한다. 그다음 TT개의 줄에는 버그를 제거해야 할 소스 코드가 한 줄씩 주어진다.

각 소스 코드 줄의 길이는 00자 이상 2 000 0002\,000\,000자 이하이다. 버그 문자열 BB는 11자 이상 10001000자 이하의 영어 대문자로만 이루어진다. 버그는 대소문자를 구분하여 문자열 BB와 정확히 일치하는 부분만을 뜻한다.

출력

각 소스 코드 줄마다, 가장 먼저 나타나는 BB를 BB가 더 이상 남지 않을 때까지 반복해서 지운 결과를 한 줄에 출력한다.

출력에는 어떤 버그도 남아 있어서는 안 되며, 버그를 제외한 나머지 문자는 공백을 포함하여 모두 원본 그대로 출력해야 한다.

예제8

  1. 예제 1

    입력
    7 BUG
    print "No bugs here..."
    
    void hello() {
    BUGBUG
      printfBUG("Hello, world!\n");
    }
    
    1 ERR
    wriERRERRtelERRn("Hello E-R-R");
    
    예상 출력
    print "No bugs here..."
    
    void hello() {
    
      printf("Hello, world!\n");
    }
    
    writeln("Hello E-R-R");
  2. 예제 2

    입력
    0 X
    2 A
    BANANA
    AAAA
    
    예상 출력
    BNN
    
  3. 예제 3

    입력
    2 AA
    AAAAA
    AAAA
    
    예상 출력
    A
    
  4. 예제 4

    입력
    1 BUG
    BUBUGG
    
    예상 출력
  5. 예제 5

    입력
    1 ABA
    ABABABA
    
    예상 출력
    B
  6. 예제 6

    입력
    1 XYZ
    hello, world! no bugs here.
    
    예상 출력
    hello, world! no bugs here.
  7. 예제 7

    입력
    1 BUG
    BUGhelloBUGworldBUG
    
    예상 출력
    helloworld
  8. 예제 8

    입력
    1 BUG
       BUG spaces   
    
    예상 출력
        spaces