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

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

다단 리스트

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

요약
입력 텍스트를 정해진 줄 수의 열과 쪽으로 배치하고, 긴 줄은 접어서 모든 칸을 점으로 채운다.
난이도

보통10점 중 4점

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

문제

Ikra 씨가 사무실의 주임 관리자가 된 뒤로, 그가 가장 좋아하는 프로그래밍과 디버깅에 쓸 시간이 거의 없어졌다. 그래서 그는 출퇴근 열차 안에서 프로그램 리스트로 프로그램을 확인하려 한다. 각 단이 그의 정장 조끼 주머니에 딱 들어가도록 소스 프로그램을 다단 리스트로 인쇄하는 도구를 그는 계속 바라 왔다.

이 문제에서는 주어진 입력 텍스트를 다단 형식으로 인쇄하는 프로그램을 만들어 그를 돕는다. 그의 정장은 주머니 크기가 다양하므로, 프로그램은 다음 네 가지 매개변수를 받을 만큼 유연해야 한다. (1) 한 단의 줄 수, (2) 한 페이지의 단 수, (3) 각 단의 너비, (4) 단 사이 간격의 너비. 인쇄에는 고정폭 글꼴을 쓴다고 가정하므로 단 너비는 한 줄에 들어가는 최대 문자 수로 주어진다. 단 사이 간격도 그 간격을 채우는 문자 수로 지정된다.

입력

한 파일에 아래 형식의 데이터 세트들이 저장되어 있다.

plen1
cnum1
width1
cspace1
line11
line12
....
line1i
....
?
plen2
cnum2
width2
cspace2
text2
line21
line22
....
line2i
....
?
0

각 데이터 세트의 처음 네 줄은 출력 형식을 지정하는 양의 정수다. Plen (1 <= plen <= 100)은 한 단의 줄 수다. Cnum은 한 페이지의 단 수다. Width는 단 너비, 즉 한 단에 들어가는 문자 수다. Cspace는 이웃한 두 단 사이의 간격 문자 수다. 1 <= (cnum * width + cspace * (cnum-1)) <= 50이라고 가정해도 된다.

그 뒤에 '?'만으로 이루어진 줄이 나올 때까지 이어지는 줄들이 입력 텍스트다. 입력 텍스트의 어떤 줄에도 영숫자 '0'-'9', 'A'-'Z', 'a'-'z' 외의 문자는 들어 있지 않다. 입력 줄 중에는 빈 줄도 있을 수 있다. 입력 줄의 길이는 1,000자를 넘지 않는다.

출력

입력 데이터 세트의 순서대로 형식에 맞춰 인쇄한다. 빈 곳은 '.' 문자로 채운다. 출력 줄이 width보다 짧으면 뒤쪽 빈칸도 '.' 문자로 채운다. 빈 입력 줄은 출력 단에서 한 줄을 차지한다. 이 빈 출력 줄은 당연히 '.' 문자로 채워진다. 그러나 입력 텍스트가 비어 있으면 어떤 페이지도 차지하지 않는다. width보다 긴 줄은 줄바꿈되어 여러 줄에 걸쳐 인쇄된다. 각 페이지의 끝에는 '#'만으로 이루어진 줄을 인쇄한다. 각 데이터 세트의 끝에는 '?'만으로 이루어진 줄을 인쇄한다.

예제1

  1. 예제 1

    입력
    6
    2
    8
    1
    AZXU5
    1GU2D4B
    K
    PO4IUTFV
    THE
    Q34NBVC78
    T
    1961
    XWS34WQ
    
    LNGLNSNXTTPG
    ED
    MN
    MLMNG
    ?
    4
    2
    6
    2
    QWERTY
    FLHL
    ?
    0
    
    예상 출력
    AZXU5....8.......
    1GU2D4B..T.......
    K........1961....
    PO4IUTFV.XWS34WQ.
    THE..............
    Q34NBVC7.LNGLNSNX
    #
    TTPG.............
    ED...............
    MN...............
    MLMNG............
    .................
    .................
    #
    ?
    QWERTY........
    FLHL..........
    ..............
    ..............
    #
    ?