{"trustable":true,"sections":[{"title":"","value":{"format":"HTML","content":"\n\u003cp\u003e给定一个长度为 \u003ci\u003eN\u003c/i\u003e 的整数序列 { \u003ci\u003ea\u003csub\u003en\u003c/sub\u003e\u003c/i\u003e },你需要将该序列分成若干部分,每个部分都是原始序列的连续子序列。每个部分必须满足部分中整数的总和不大于给定的整数 \u003ci\u003eM\u003c/i\u003e。你需要找到一种分割方式,以使每个部分中的最大整数的总和最小化。\u003c/p\u003e\n"}},{"title":"输入","value":{"format":"HTML","content":"\u003cspan lang\u003d\"en-us\"\u003e\u003cp\u003e输入的第一行包含两个整数 \u003ci\u003eN\u003c/i\u003e (0 \u0026lt; \u003ci\u003eN\u003c/i\u003e ≤ 100,000) 和 \u003ci\u003eM\u003c/i\u003e。接下来一行包含 \u003ci\u003eN\u003c/i\u003e 个整数,描述整数序列。序列中的每个整数都在 0 到 1,000,000 之间,包括 0 和 1,000,000。\u003c/p\u003e\u003c/span\u003e"}},{"title":"输出","value":{"format":"HTML","content":"\u003cp\u003e输出一个整数,表示每个部分中的最大整数的总和的最小值。如果不存在这样的划分,输出 -1。\u003c/p\u003e"}},{"title":"示例","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e8 17\r\n2 2 2 8 1 8 2 1\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e12\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}},{"title":"提示","value":{"format":"HTML","content":"\u003cp\u003e使用 64 位整数类型来存储 \u003ci\u003eM\u003c/i\u003e。\u003c/p\u003e"}}]}