시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
2 초 | 128 MB | 79 | 23 | 20 | 35.088% |
HTML에서 표를 그리려면 태그를 이용해야 한다. 표를 그리는 간단한 표현이 주어졌을 때, 표의 아스키 아트를 만드는 프로그램을 작성하시오.
표는 m × n 그리드로 나타낼 수 있고, 각 칸의 너비는 두 글자, 높이는 한 글자이다. 2 × 3 그리드는 다음과 같이 나타낼 수 있다.
-- -- -- |11|12|13| -- -- -- |21|22|23| -- -- --
출력은 2m + 1개의 행으로 이루어져 있고, 각 행은 3n + 1개의 글자로 이루어져 있다. (홀수 행의 앞과 뒤에 들어가는 공백도 포함)
표는 행이나 열 여러 개를 합칠 수 있다. 예를 들어, 칸 11이 두 행을 합치고, 칸 22가 두 열을 합쳤을 때의 아스키 아트는 다음과 같다.
-- -- -- |11|12|13| -- -- | |22 | -- -- --
m과 각 칸이 합친 행과 열의 수가 주어졌을 때, 아스키 아트를 만드는 프로그램을 작성하시오.
입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 행의 수 m이 주어진다. 다음 m개 줄에는 각 칸이 합친 행의 수와 열의 수가 주어진다. 합친 정보는 한 번만 주어지며, 왼쪽 위 칸에서만 주어진다.
한 행을 나타내는데 총 N개의 합친 정보가 필요한 경우, 다음과 같이 주어진다.
N RS1 CS1 ... RSN CSN
RSk 와 CSk 는 1보다 크거나 같고, 9보다 작거나 같은 수이며, 그 칸에 합쳐진 행의 수와 열의 수를 나타낸다. 어떤 행에 이미 이전 행에 합쳐진 칸이 있는 경우에는, 그 행을 나타내는데 필요한 숫자가 더 적을 수도 있다.
입력은 다음과 같은 조건을 만족한다.
최대 100개의 테스트 케이스가 주어지며, 입력의 마지막은 m = 0으로 나타낸다.
각 테스트 케이스 마다, 입력으로 주어진 표의 아스키 아트를 출력한다. 모든 칸의 왼쪽 위 칸에는 행 번호와 열 번호를 출력한다. 모든 테스트 케이스 사이에는 빈 줄을 출력한다.
아스키 아트를 출력할 때, 줄이 공백으로 끝나는 경우에는 그 공백을 모두 삭제하고 출력해야 한다.
3 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 3 2 1 1 2 1 1 1 1 2 1 1 1 1 3 1 1 2 2 1 1 1 1 2 1 1 1 1 3 2 2 1 1 2 1 2 2 1 1 1 0
-- -- |11|12| -- -- |21|22| -- -- |31|32| -- -- -- -- |11|12| -- |21| | -- -- |31|32| -- -- -- -- |11 | -- -- |21|22| -- -- |31|32| -- -- -- -- -- |11|12 | -- -- | |22 | -- |31| | -- -- --
ICPC > Regionals > North America > Rocky Mountain Regional > 2013 Rocky Mountain Regional Contest H번