中一小朋友,competitive programming / binary search 内容中的一个练习题。简化一下问题描述: 
一个连续数列,比如 1 2 3 4 5 6 7 8 9 ... m分成 n 个相连的 group,每种分法,取最大的那个 group sum。问,怎么分,才有最小的最大 group sum。
比如 m = 9, 1 2 3 4 5 6 7 8 9n = 3 分成 3 组A) 分成 (1 2) (3 4) (5 6 7 8 9) -> max sum: 5+6+7+8+9=35B) 分成 (1 2 3) (4 5 6) (7 8 9) -> max sum: 7+8+9=24C) 分成 (1 2 3 4 5) (6 7) (8 9) -> max sum: 8+9=17D) ......
答案是 17,不管怎么分,最小的 max sum 是 17,C 的那种分法。
test case,取不同的 m, n, 并且 0 < m, n < 1000。不光看答案,也看运行时间。
暴力测试是可以的,但是运行时间超时 (AWS 上编译的 C++ 代码)。我觉得这样的题目给中一孩子太难了。而且也没弄懂怎么在上面应用 binary search。还是想得太复杂?