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

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

텍스트 서식

면접 대비

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

요약
주어진 텍스트를 문단별로 b칸 들여쓰기하고 너비 w에 맞춰 단어를 채워 넣으며, 구두점은 앞 단어에 붙여 재배열한다.
난이도

보통10점 중 5점

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

문제

TEX나 Wiki 같은 많은 텍스트 서식 시스템은 빈 줄로 텍스트를 문단으로 나눈다. 텍스트는 공백, 줄 바꿈 문자, 그리고 다음과 같은 문장 부호로 구분된 단어의 나열이다: ,, ., ?, !, -, :, ' (ASCII 코드 44, 46, 63, 33, 45, 58, 39). 텍스트의 각 단어는 라틴 알파벳의 대문자와 소문자, 숫자로 이루어진다. 텍스트는 여러 문단으로 구성될 수 있다. 이 경우 인접한 문단은 하나 이상의 빈 줄로 구분된다. 첫 번째 문단 앞과 마지막 문단 뒤에도 하나 이상의 빈 줄이 올 수 있다.

원본 텍스트를 이어서 사용하려면 서식을 지정해야 하는데, 그 방식은 다음과 같다. 각 문단은 길이가 w 이하인 줄로 나누어야 한다. 각 문단의 첫 번째 줄은 b개의 공백으로 이루어진 들여쓰기로 시작해야 한다. 한 줄 안의 단어들은 정확히 하나의 공백으로 구분되어야 한다. 단어 뒤에 하나 이상의 문장 부호가 오면, 그 부호들은 추가 공백 없이 단어 바로 뒤에 와야 한다. 다음 단어가 그 뒤에 오는 문장 부호와 함께 현재 줄에 들어가면 현재 줄에 배치한다. 그렇지 않으면 그 단어부터 새 줄을 시작한다. 서식이 지정된 텍스트에서 문단은 빈 줄로 구분되어서는 안 된다. 줄 끝에는 공백이 있어서는 안 된다.

w와 b, 그리고 주어진 텍스트가 있을 때, 위에서 설명한 대로 서식을 지정한 텍스트를 출력하는 프로그램을 작성하라.

입력

입력 파일의 첫 번째 줄에는 두 정수 w와 b가 주어진다 (5 ≤ w ≤ 100, 1 ≤ b ≤ 8, b < w).

그다음에는 주어진 텍스트를 포함하는 한 줄 이상의 줄이 이어진다. 텍스트에서 단어의 길이에 그 뒤에 오는 문장 부호의 길이를 더한 값은 w를 넘지 않으며, 모든 문단의 첫 번째 단어의 길이에 그 뒤에 오는 문장 부호의 길이를 더한 값은 (w – b)를 넘지 않는다.

입력 파일의 크기는 100 KB를 넘지 않는다. 입력 파일에서 각 줄의 길이는 250을 넘지 않는다.

출력

출력 파일은 문제에 제시된 규칙에 따라 서식을 지정한 주어진 텍스트를 포함해야 한다.

예제1

  1. 예제 1

    입력
    20 4
    Yesterday, 
    All my troubles seemed so far away, 
    Now it looks as though they're here to stay, 
    Oh, I believe in yesterday. 
    
    Suddenly, 
    I'm not half the man I used to be, 
    There's a shadow hanging over me, 
    Oh, yesterday  came suddenly...
    
    예상 출력
        Yesterday, All
    my troubles seemed
    so far away, Now it
    looks as though
    they' re here to
    stay, Oh, I believe
    in yesterday. 
        Suddenly, I' m
    not half the man I
    used to be, There' s
    a shadow hanging
    over me, Oh,
    yesterday came
    suddenly...