TORIE
시간 제한1초메모리 제한1024 MB
대괄호로 중첩된 TORIE 문자열에서 키워드가 대문자 문자열이나 자식의 문자열로 이어진 부분에 나타나면 해당 TORIE를 제거하고, 남은 TORIE를 입력 순서대로 출력합니다.
문제
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!를 출력한다.
입력
첫 번째 줄에는 1개 이상의 TORIE를 나타내는 문자열이 주어진다. 문자열의 총 길이는 3 이상 이하이다. TORIE가 성립하지 않는 입력은 주어지지 않는다.
두 번째 줄에는 키워드 문자열이 주어진다. 이 문자열은 영어 대문자로만 이루어져 있으며, 길이는 1 이상 20 이하이다.
출력
작업을 모두 마친 뒤 남은 TORIE를 입력된 순서대로 출력한다. 모든 TORIE가 제거되었다면 torie!를 출력한다.