#z137. 物品分组

物品分组

题目描述

n件物品排成一排,编号分别为:1、2、3、...、n,每件物品都有它自身的价值,价值分别为:a1、a2、a3、...、an。请将这n件物品拆分为k组(不改变物品的顺序),要求每组内至少有一件物品,分别统计每组物品的价值之和,并找出其中的最大值。请设计一种分组方案,使这个最大值尽可能小,并输出这个最大值。

例如:n=5,表示有5件物品,这5件物品的价值分别是6、1、3、8、4;k=2,表示要将这5件物品拆分为两组,有如下方案:

  1. [6]和[1,3,8,4],两组物品各自的价值之和为6和16,最大值为16;
  2. [6,1]和[3,8,4],两组物品各自的价值之和为7和15,最大值为15;
  3. [6,1,3]和[8,4],两组物品各自的价值之和为10和12,最大值为12;
  4. [6,1,3,8]和[4],两组物品各自的价值之和为18和4,最大值为18;

其中第3种方案,价值之和的最大值12在4种方案中最小,故输出12。

输入描述

第一行输入一个整数n(1≤n≤1000),表示物品的数量; 第二行输入n个整数a1、a2、...、an(1≤ai≤10^5),ai表示i号物品的价值,整数之间以一个空格隔开; 第三行输入一个整数k(1≤k≤n),表示将n件物品拆分的组数。

输出描述

输出一个整数,表示按照题目要求得到的最大值。

输入样例

5
6 1 3 8 4
2

输出样例

12

数据范围

1≤n≤1000;1≤ai≤10^5;1≤k≤n