#7126. 排版问题

排版问题

题目描述

由于英文单词长短不一,对一篇文章进行排版的时候,如何把文章中的单词分在不同的行上可以达到整齐美观的效果,是一个大问题。

给定一个整数 nn,表示一篇需要排版的文章有 nn 个单词,其中第 ii 个单词有 wiw_i 个字母,请将这些单词分成若干行,使得整篇文章的偏离度到达最小。

整篇文章排版的偏离度定义为每一行的偏离度之和。一行的偏离度定义为 (xa)2(x-a)^2,其中 aa 为一个给定的标准长度,xx 为这一行单词的字母数量之和。

输入格式

第一行:单个整数 nnaa; 第二行:nn 个整数 w1,w2.,wnw_1,w_2.\cdots,w_n

输出格式

单个整数:表示最小的排版偏离度。

10 20
8 9 4 5 7 3 4 9 9 3
3

样例解释 1

| 8 9 4 | 5 7 3 4 | 9 9 3 |

7 10
3 5 1 3 4 6 4
8

样例解释 2

输入为one apple a day keep doctor away时,如果用贪心法将one apple a 放在第一行,不是最优解。

数据范围

  • 1a1000001\leq a\leq 100000
  • 1wi1001\leq w_i\leq 100
  • 对于 30%30\% 的数据:1n251\leq n\leq 25
  • 对于 60%60\% 的数据:1n50001\leq n\leq 5000
  • 对于 100%100\% 的数据:1n2000001\leq n\leq 200000