시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB73312448.980%

문제

TORIE는 [ABC] 와 같이 여는 대괄호 [ , 하나 이상의 영어 대문자, 닫는 대괄호 ] 형식의 문자열이며, 자식 TORIE를 가질 수 있다. TORIE가 자식 TORIE를 가진 경우, 영어 대문자 문자열 다음에 자식 TORIE가 등장한다. [A[B][C]] 는 B TORIE, C TORIE를 자식으로 가지고 있는 A TORIE를 표현한 것이다. 자식 TORIE 역시 대괄호로 감싸진 문자열 형식 및 자식 TORIE를 가질 수 있다는 TORIE의 성질을 똑같이 갖는다.

키워드로 TORIE를 제거할 수 있는데, 방법은 아래와 같다.

  • 한 TORIE의 영어 대문자 문자열의 한 지점에서 시작한 부분 문자열이 키워드와 일치한다면 해당 TORIE를 제거할 수 있다.
  • 만약 TORIE의 영어 대문자 문자열의 한 지점에서 만들 수 있는 부분 문자열의 최대 길이가 키워드보다 짧다면, 자식 TORIE 중 한 TORIE의 영어 대문자 문자열 앞에 부분 문자열을 이어나갈 수 있다. 위의 조건을 연달아 충족한다면 자식 TORIE에서 그 자식 TORIE로 이어나가는 것의 연속 또한 가능하다. 이어나간 부분 문자열이 키워드와 일치한다면 부분 문자열이 시작된 TORIE를 제거할 수 있다.
  • 키워드를 통한 TORIE 제거는 여러 번 할 수 있으며, 어떤 TORIE가 제거될 때 자식 TORIE까지 모두 제거된다.

키워드를 이용하여 최대한 적은 TORIE가 남도록 제거하고 남은 TORIE를 입력된 순서대로 출력하라. 단, 모든 TORIE가 제거됐다면 torie!를 출력한다.

입력

첫 번째 줄에는 1개 이상의 TORIE를 나타내는 문자열이 주어진다. 문자열의 총 길이는 3 이상, 106 이하이다. TORIE가 성립하지 않는 경우는 입력으로 주어지지 않는다.

두 번째 줄에는 키워드 문자열이 주어진다. 이 문자열은 영어 대문자로만 이루어져 있으며, 길이는 1 이상, 20 이하다.

출력

작업을 모두 마치고 남은 TORIE를 입력된 순서대로 출력한다. 모든 TORIE가 제거됐다면 torie!를 출력한다.

예제 입력 1

[MY[ICE[AMERICANO][ESPRESSO]][HOT[STEAMMILK][CAPUCCINO]]]
HOTSTEAMMILK

예제 출력 1

[MY[ICE[AMERICANO][ESPRESSO]]]

예제 입력 2

[B[BAAB[B[B[B]]]]][BA[BA[AB]]][AA]
AA

예제 출력 2

[B][BA]

예제 입력 3

[ICE[FIRE][BALL]]
FIREBALL

예제 출력 3

[ICE[FIRE][BALL]]

예제 입력 4

[ASTR[ONAUT][ONGHOLD[BOW][CANNON]]]
STRONG

예제 출력 4

torie!

예제 입력 5

[ZAB[AB[ABC][C]]]
ABABC

예제 출력 5

torie!

출처

Camp > ICPC Sinchon Algorithm Camp > 2020 ICPC Sinchon Summer Algorithm Camp Contest > 초급 F번