难题·序列划分

时间限制: 1000 ms 内存限制: 65536 kb
总通过人数: 0 总提交人数: 1

题目描述

给定一个非降序排列的数组$A$,将其划分成$k$个非空的连续子序列。

设第i个序列的和为$S(i)$,求一种划分方案使得所有$S(i)$的最大值最小。

若存在多解,则优先划分在前面。

输入

输入包含多组测试数据,以EOF结束。

对于每组测试数据,第一行为2个数$n, k$,分别表示数组长度$n$和划分序列个数$k$

接下来一行,为$n$个范围为$(0, 1,000,000]$的整数,表示数组$A$的元素,保证数组$A$中所有元素已非降序排列。

保证$1 \leq k \leq n \leq 500$

输出

对于每组数据,输出一行,所求划分方案。

对于划分的位置,两个数之间用 \ 分隔(一个'\'符号和其左右两边各一个空格),其余位置两数之间以一个空格分隔。

格式参见样例。

输入样例

9 3
1 2 3 4 5 6 7 8 9
5 4
21 21 21 21 21

输出样例

1 2 3 4 5 \ 6 7 \ 8 9
21 \ 21 \ 21 \ 21 21

Source

UVa714,有小幅改动

相关推荐