시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
2 초 | 128 MB | 107 | 41 | 35 | 54.688% |
동호는 어떤 도자기 장식 판을 포장하는 회사에서 일을 하고 있다. 모든 장식 판은 두께가 1이고 너비가 모두 같으며 각자 자신의 고유한 모양을 가지고 있다.
박스의 너비는 장식 판의 너비와 같아 장식 판을 포장할 때, 차례로 쌓을 수밖에 없다. 예를 들어 위의 장식 판을 차례로 쌓으면 아래의 왼쪽 그림과 같은 모양이 나오게 되고 세 번째 -> 두 번째 -> 첫 번째 순서로 쌓으면 오른쪽 그림과 같이 나오게 된다.
그런데 박스의 높이에는 한계가 있어서 왼쪽과 같은 경우에는 박스를 포장할 수 없게 된다. 그렇기 때문에 왼쪽과 같이 포장을 하려면 박스를 두개로 나누어서 첫 번째 박스는 두 번째 장식 판까지 쌓고, 두 번째 박스에 세 번째 장식 판을 넣어 포장을 해야 할 것이다.
우리가 해야 할 일은 다음과 같다. 어떤 장식 판의 개수, 너비, 박스의 높이, 그리고 장식 판들의 모양이 주어져 있다고 가정하자. 이러한 상황에서 주어진 장식 판을 순서대로 쌓을 때, 사용한 각 박스 안에 쌓은 높이를 출력하는 프로그램을 작성하시오. (ex, 위의 예 같은 경우에는 첫 번째 박스에 2번째 장식 판 까지 쌓아 높이가 9가 되고 두 번째 박스에 세 번째 장식 판을 넣어 높이가 6이 된다. 그래서 답은 9 6이 되는 것이다.)
입력은 첫째 줄에 공백으로 구분된 100을 넘지 않는 세 자연수 n, w, b가 주어진다. n은 장식 판의 종류이고, w는 장식판과 박스의 너비, 그리고 b는 박스의 높이이다. 그리고 다음으로 n개의 장식 판의 정보가 주어지는데, 각 정보의 첫줄에는 장식 판의 높이 h(1 ≤ h ≤ 10, h ≤ b) 가 주어지고 두 번째 줄부터 h+1번째 줄까지 장식 판의 정보가 .과 X로 주어진다. .은 빈 공간을 의미하고 X는 장식 판의 한 부분을 의미한다.
필요한 박스의 개수만큼의 정수를 출력하는데 각 박스에 쌓인 장식 판의 높이를 공백을 사이에 두고 출력한다.
3 5 12 5 XXXXX .XXXX ..XXX ...XX ....X 4 XXX.. ..X.. ..XXX ..X.. 6 X.... X.... X.... X.... X.... XXXXX
9 6
3 5 12 6 X.... X.... X.... X.... X.... XXXXX 4 XXX.. ..X.. ..XXX ..X.. 5 XXXXX .XXXX ..XXX ...XX ....X
10