a744. CPE:Formatting Text (UVa 709)

困難CPE

時間限制 2000 ms ・ 記憶體限制 256 MB

題目描述

重新排版每個段落,保留單字原順序,讓每行(含最後一行)達到指定寬度 n。可重新分行,並在同一行相鄰單字間插入至少一個空白,但行首、行尾不可有空白。

含 k 個空白的間隔,其不美觀程度為 (k−1)²。目標是讓全段所有間隔的總不美觀程度最小。唯一例外是只有一個單字的行:單字置於行首,不補行尾空白;若單字短於指定寬度,該行成本為 500,若恰好等寬則為 0。

若多種排版的總成本相同,從文章開頭比較,找到第一個長度不同的字間空白,選擇該空白較短的方案。

輸入格式

每個段落之前有一行整數 n(1 ≤ n ≤ 80)。段落由一或多行組成,每行有一或多個單字;單字由 ASCII 33 到 126 的字元組成,以一個或多個空白分隔。每個單字不長於 n,每段單字字元總長不超過 10000。恰好一個空白行結束該段。以 n = 0 結束全部輸入。

輸出格式

逐段輸出符合上述最小成本及同分規則的排版。每段後另印一個空白行。單字內的字元不得改變。

原題:https://onlinejudge.org/external/7/709.pdf

範例測資

範例輸入 1

28
This is the example you are
actually considering.

25
Writing e-mails is fun, and with this program,
they even look nice.

0

範例輸出 1

This  is  the  example   you
are  actually   considering.

Writing e-mails  is  fun,
and  with  this  program,
they  even   look   nice.

請先登入後再提交程式碼

討論與題解

載入討論區…

更多