시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
1 초 | 128 MB | 246 | 74 | 36 | 23.841% |
백준이는 스마트폰용 HTML 에디터를 만들던 중 잘라내기/복사하기/붙여넣기 기능에서 막혔다. 간단해 보이는 기능이지만, 이 기능은 꽤 복잡한 기능이다. 그 이유는 선택한 구간의 서식을 유지해야 하기 때문이다. 하지만, 선택한 구간이 구간 밖의 태그에 영향을 받기 때문에 이 기능이 복잡한 기능이다.
HTML 문서가 주어졌을 때, 백준이는 B부터 E까지 구간을 선택했다. 그 다음, B부터 E까지 부분 문자열이 원래 있던 곳에서의 서식과 동일한 서식으로 만들기 위해서 부분 문자열의 앞과 뒤에 태그를 추가해야 한다.
모든 태그는 여는 태그("<b>")와 닫는 태그("</b>")로 이루어져 있다. 여는 태그와 닫는 태그는 항상 쌍으로 주어진다. 또한, 두 태그 사이에 또다른 태그를 넣을 수 있다. 하지만, 아직 닫히지 않은 태그가 있다면, 닫는 태그를 작성할 수 없다. 예를 들어, <i>abc<b>def</i>ghi</b>는 올바르지 않은 HTML이다. 또한, 이미 여는 태그를 작성한 태그(아직 닫지 않은 태그)를 또 작성할 수 없다. 예를 들어, <b><b>recursive b</b><b/>는 올바르지 않은 HTML이다.
입력은 여러 개의 테스트 케이스로 이루어져 있고, 각 케이스는 한 줄로 이루어져 있고, B E TEXT와 같은 형식이다.
B는 부분 문자열의 시작 위치(포함), E는 끝 위치(포함하지 않음)이고, TEXT는 에디터에 있는 HTML 문서이다. B, E, TEXT는 모두 공백으로 구분되어 있다. (0 ≤ B ≤ E ≤ TEXT의 길이)
마지막 테스트 케이스 다음 줄에는 -1 -1이 주어진다. 또, TEXT는 200자를 넘지 않는다. TEXT는 아스키 값이 32보다 크거나 같고, 126보다 작거나 같은 문자로만 이루어져 있다. 여는 태그는 항상 "<X>"와 같은 꼴이고, X는 적어도 1글자 이상이다. 또한, 'a'~'z', 'A'~'Z', '0'~'9', '-'로만 이루어져 있다. '<'는 항상 태그에서만 사용한다.
입력으로 주어지는 HTML 문서는 항상 올바르다. 즉, 여는 태그는 항상 그에 상응하는 닫는 태그가 있고, 모든 닫는 태그도 마찬가지이다. 부분 문자열이 태그를 중간에 끊는 경우는 없다. (예를 들어, <B>로 시작하는 문자열이 있을 때, B에서부터 시작하는 부분 문자열)
각 입력에 대해서, B부터 E까지 부분 문자열을(E는 부분 문자열에 포함되지 않는다) 원래 위치에서와 동일한 서식으로 만들기 위해 추가해야 하는 태그를 앞과 뒤에 적절히 추가한 뒤 출력한다.
0 15 Testing<b>!</b> 18 23 <big>100, <bigger>1000, <biggest>10000</biggest></bigger></big> 4 4 <b>123</b> 0 16 :-/ :-> :-) :-<-> </-> -1 -1
Testing<b>!</b> <big><bigger>1000,</bigger></big> <b></b> :-/ :-> :-) :-
ICPC > Regionals > North America > Mid-Atlantic Regional > 2005 Mid-Atlantic Regional Programming Contest D번