만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

ASCII 아트

면접 대비

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

요약
최대 5000개의 정수 점이 주어질 때, 이들을 'x'로 표시하고 빈 축은 '-'와 '|', 원점은 'o'로 채우며 가장 작은 '#' 직사각형 프레임 안에 그리는 문제입니다.
난이도

보통10점 중 4점

유형
구현, 행렬, 시뮬레이션
정답자
아직 제출이 없습니다

문제

Malnar 씨는 예술과 자그레브의 도시 문화를 열렬히 사랑하는 사람이라, 그가 해마다 Art Park 행사에 빠지지 않고 참석하는 것도 놀라운 일이 아니다. 올해 이 행사는 Ribnjak 공원에서 열렸다. 흥미롭게도 그는 바로 그곳에서 이 문제에 대한 영감을 얻었다. "카우보이, 권총, 페미니즘" 전시회의 걸작들을 둘러보던 중, 그는 한 젊은 여성을 만났다.

Malnar 씨: 현대 예술가들이 ASCII 아트 기법을 거의 사용하지 않는다는 걸 알고 있나요?

여성: 솔직히 그 기법을 잘 모르겠어요. 정확히 어떤 건가요?

Malnar 씨: 예술가들이 ASCII 표준에 정의된 128개 문자를 사용해 매우 복잡한 그림을 표현하는 기법이에요. 원한다면 제 작품 몇 개를 보여드릴게요, 그리고 그 김에 홉 주스도 한잔 대접할 수 있어요.

여성: 흥미롭네요, 좋아요!

평면 위에 n개의 정수 좌표 점이 주어질 때, 여러분의 임무는 ASCII 아트 기법을 사용해 이 점들을 좌표계에 그리는 것이다.

그림에서 각 점은 문자 'x'(ASCII 120)로 나타내야 한다. 만약 점들 중에 좌표계의 원점이 없다면, 원점은 문자 'o'(ASCII 111)로 나타내야 한다. 또한, 점들이 없는 좌표축 부분은 특수 문자로 나타내야 한다. 더 정확히는, 점들이 없는 x축 부분은 문자 '-'(ASCII 45)로, 점들이 없는 y축 부분은 문자 '|'(ASCII 124)로 나타내야 한다. 점, 원점, 좌표축이 모두 없는 나머지 평면 부분은 공백 문자 ' '(ASCII 32)로 나타내야 한다.

추가로, 전체 그림을 가능한 한 가장 작은 넓이의 직사각형 틀에 넣어야 하며, 그 틀의 테두리는 문자 '#'(ASCII 35)로 표시해야 한다. 물론, 틀 안에는 모든 점과 원점이 들어가야 한다.

이 조건들은 그림의 모양을 유일하게 결정한다.

입력

첫 번째 줄에는 문제 본문의 자연수 n(1 ≤ n ≤ 5 000)이 주어진다.

다음 n개의 줄 중 i번째 줄에는 i번째 점의 좌표를 나타내는 두 정수 xi와 yi(−500 ≤ xi, yi ≤ 500)가 주어진다. 각 점은 입력에 최대 한 번만 나타난다.

출력

문제 본문에서 설명한 대로, 점들이 표시된 좌표계의 ASCII 아트 그림을 출력한다.

예제3

  1. 예제 1

    입력
    2
    1 1
    -3 -1
    
    예상 출력
    #######
    #   |x#
    #---o-#
    #x  | #
    #######
    
  2. 예제 2

    입력
    6
    -5 0
    -3 0
    -1 0
    1 0
    3 0
    5 0
    
    예상 출력
    #############
    #x-x-xox-x-x#
    #############
    
  3. 예제 3

    입력
    20
    -1 1
    -1 2
    -1 3
    -2 2
    -2 4
    -3 2
    -3 4
    -4 1
    -4 2
    -4 3
    1 -1
    1 -2
    1 -3
    1 -4
    2 -1
    2 -4
    3 -1
    3 -4
    4 -1
    4 -4
    
    예상 출력
    ###########
    # xx |    #
    #x  x|    #
    #xxxx|    #
    #x  x|    #
    #----o----#
    #    |xxxx#
    #    |x   #
    #    |x   #
    #    |xxxx#
    ###########