bzoj#P4692. Beautiful Spacing

Beautiful Spacing

题目描述

文章是一些单词组成的序列,单词由字母组成。你的任务是将一篇文章的单词填充到一个网格中,其中网格包含W 列和足够多的行。为了布局之美,以下限制都需要满足。 1.文章中的文字需要按照原有的顺序放置。下图表示了将4个单词的文章“This is a pen”放入11列的网格正确和 错误的例子。 2.在同一行的两个相邻单词之间要有至少一个空格。有时你会需要放置多于一个空格来满足其他限制。 3.一个单词必须被放置到连续的列中,一个格子只含一个字符。你不能将通过增加空格或换行将一个单词分成多个 部分。 4.文章必须占据边缘两列的格子,即每行的第一个单词必须占用第一个格子,且除了最后一行之外的每行的最后一 个单词必须占用最后一个格子。 文章拥有最美的布局时,每一行都不会有过多的连续空格,在下图的例子里只有最多2个连续空格,而第一个例子 里有3个连续空格,所以下图的例子比第一个例子美观。给定文章的信息和列数,请你找到一个最优的布局,使得 最长连续空格尽量短。

输入格式

输入包含多组测试数据。每组数据第一行包含两个正整数W和N,其中W表示列数(3≤W≤80000),N表示文章的单词数量(2≤N≤50000)。 第二行包含N个正整数,按照文章中单词的顺序给出每个单词的字符数量, 对于第i个单词的字符数量xi,有1≤x_i≤(W-1)/2,从而这也使得答案一定存在。 输入以两个零作为结束。

输出格式

对于每组数据,输出一个正整数表示最长连续空格长度的最小值。

11 4
4 2 1 3
5 7
1 1 1 2 2 1 2
11 7
3 1 3 1 3 3 4
100 3
30 30 39
30 3
2 5 3
0 0

2
1
2
40
1

提示

没有写明提示

题目来源

鸣谢Tangjz提供试题