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

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

JAG-channel

면접 대비

시간 제한8초메모리 제한512 MB

요약
각 줄이 점으로 들여쓴 게시물이다. 점을 칸으로 바꾸고 게시물 바로 앞 점은 '+', 부모와 자손 사이의 점은 '|'로 다시 그린다.
난이도

보통10점 중 5점

유형
구현, 트리, 시뮬레이션, 스택
정답자
아직 제출이 없습니다

문제

네이선 O. 데이비스는 JAG-channel이라는 전자 게시판을 운영한다. 그는 현재 스레드 뷰라는 새 기능을 추가하는 작업을 하고 있다.

대부분의 전자 게시판과 마찬가지로 JAG-channel은 스레드 기반이다. 스레드란 하나의 대화를 이루는 게시물의 묶음을 말한다. 게시물에는 다음 두 종류가 있다.

  • 새 스레드를 만드는 첫 게시물
  • 이미 있는 스레드의 이전 게시물에 대한 답글

스레드 뷰는 게시물 사이의 답글 관계로 이루어진 논리적 구조를 나타내는 트리 형태의 뷰다. 각 게시물은 트리의 노드가 되고, 그 게시물에 달린 답글이 자식 노드가 된다. 어떤 게시물에 대한 직간접 답글이 전체적으로 하나의 부분 트리를 이룬다는 점에 주의하자.

예를 들어, "hoge"라는 첫 게시물에 "fuga"와 "piyo"라는 답글 두 개가 달리고, "fuga"에 다시 "foobar"와 "jagjag"이라는 답글이 달리고, "jagjag"에 "zigzag"라는 답글이 달렸다고 하자. 이 스레드의 트리는 다음과 같다.

hoge
├─fuga
│ ├─foobar
│ └─jagjag
│   └─zigzag
└─piyo

네이선 O. 데이비스는 프로그래머를 고용해 기능을 구현하게 했지만, 그 프로그래머는 마지막 단계에서 사라져 버렸다. 프로그래머는 스레드의 트리를 만들고 그것을 간이 형식으로 표시하는 부분까지 완성해 두었다. 이 간이 형식에서 답글의 깊이는 '.'(반각 마침표)로 나타내고, 어떤 게시물에 대한 답글은 원래 게시물보다 '.'가 하나 더 왼쪽에 붙는다. 또한 어떤 게시물에 대한 답글은 반드시 원래 게시물보다 아래에 온다. 답글을 단 게시물과 답글 사이에는 답글을 단 게시물에 대한 다른 답글(그리고 그에 대한 직간접 답글)이 나타날 수 있지만, 그 외의 게시물이 둘 사이에 나타나지는 않는다. 위 트리의 간이 형식 표시는 다음과 같다.

hoge
.fuga
..foobar
..jagjag
...zigzag
.piyo

당신이 할 일은 이 간이 형식 표시를 받아 보기 좋게 정리하는 것이다. 즉,

  • 각 게시물 바로 왼쪽의 '.'(각 게시물 왼쪽에 붙은 '.' 중 가장 오른쪽 것)을 '+'(반각 플러스),
  • 같은 게시물에 대한 직접 답글마다 각각의 바로 왼쪽에 있는 '+' 사이에 위치하는 '.'을 '|'(반각 세로줄),
  • 나머지 '.'은 ' '(반각 공백)

으로 바꾸면 된다.

위 간이 형식 표시를 정리한 결과는 다음과 같다.

hoge
+fuga
|+foobar
|+jagjag
| +zigzag
+piyo

입력

입력은 여러 데이터 세트로 구성된다. 각 데이터 세트의 형식은 다음과 같다.

nn

s1s_1

s2s_2

...

sns_n

nn은 간이 형식 표시의 줄 수를 나타내는 정수이며, 1 이상 1,000 이하라고 가정해도 좋다. 이어지는 nn개의 줄에는 스레드 트리의 간이 형식 표시가 적혀 있다. sis_i는 간이 형식 표시의 ii번째 줄을 나타내며, 여러 개의 '.'과 그 뒤에 이어지는 1자 이상 50자 이하의 알파벳 소문자로 이루어진 문자열로 구성된다. s1s_1은 스레드의 첫 게시물이며 '.'을 포함하지 않는다. s2s_2, ..., sns_n은 그 스레드의 답글이며 반드시 1개 이상의 '.'을 포함한다.

n=0n=0은 입력의 끝을 나타낸다. 이는 데이터 세트에 포함하지 않는다.

출력

각 데이터 세트에 대한 정리된 표시를 nn줄씩 출력하라.

예제1

  1. 예제 1

    입력
    6
    hoge
    .fuga
    ..foobar
    ..jagjag
    ...zigzag
    .piyo
    8
    jagjag
    .hogehoge
    ..fugafuga
    ...ponyoponyo
    ....evaeva
    ....pokemon
    ...nowawa
    .buhihi
    8
    hello
    .goodmorning
    ..howareyou
    .goodafternoon
    ..letshavealunch
    .goodevening
    .goodnight
    ..gotobed
    3
    caution
    .themessagelengthislessthanorequaltofifty
    ..sothelengthoftheentirelinecanexceedfiftycharacters
    0
    
    예상 출력
    hoge
    +fuga
    |+foobar
    |+jagjag
    | +zigzag
    +piyo
    jagjag
    +hogehoge
    |+fugafuga
    | +ponyoponyo
    | |+evaeva
    | |+pokemon
    | +nowawa
    +buhihi
    hello
    +goodmorning
    |+howareyou
    +goodafternoon
    |+letshavealunch
    +goodevening
    +goodnight
     +gotobed
    caution
    +themessagelengthislessthanorequaltofifty
     +sothelengthoftheentirelinecanexceedfiftycharacters