창 정리
시간 제한2초메모리 제한128 MB
아스키 화면에서 제목이 있는 여러 창을 찾아 제목순으로 정렬한 뒤, 좌상단부터 대각선으로 계단식 배치하여 다시 출력하는 문제입니다.
문제
텍스트 모드 화면에는 여러 개의 창이 놓여 있다. 각 창은 +, -, |, ., 그리고 알파벳 소문자 제목으로만 이루어지며, 형태는 다음과 같다.
+--|abcdef|---+
|.............|
|.............|
|.............|
|.............|
+-------------+
모든 창은 이 형태를 따른다. 창의 가로 길이는 제목을 표시하기에 충분하며, 제목은 윗변에서 정확히 가운데에 놓인다. 양쪽 여백 길이가 같지 않을 때는 오른쪽 여백이 왼쪽보다 하나 더 길다.
스크린샷이 주어진다. 어떤 두 창도 서로 겹치지 않는다. 모든 창을 다음 규칙에 따라 계단식 배치로 다시 정리한 화면을 출력하라.
- 각 창의 가로와 세로 크기는 바뀌지 않는다.
- 창은 제목의 알파벳 사전순으로 정렬한다.
- 정렬된 첫 번째 창의 왼쪽 위 꼭짓점을 화면 전체의 왼쪽 위 꼭짓점에 맞춘다. 이후 창은 순서대로 직전 위치보다 한 칸 오른쪽, 한 칸 아래에 놓는다.
입력
첫째 줄에 화면의 세로 길이 M과 가로 길이 N이 주어진다. (10 <= M, N <= 100) 이어서 M개의 줄에 각각 길이 N인 문자열이 주어지며, 이는 현재 화면의 스크린샷을 나타낸다. 배경은 모두 .으로 표시된다. 모든 창 제목의 길이는 1 이상 10 이하이다. M과 N은 계단식 배치로 모든 창을 다시 놓기에 충분히 크다고 가정해도 좋다.
출력
M개의 줄에 걸쳐 모든 창을 계단식 배치로 정리한 화면을 출력한다.