题目描述
你现在是艾泽拉斯的主席,需要举办一场盛大的活动,活动由许多项目组成且最长持续时间为
�
T。每个项目都有各自的持续时间
�
�
t
i
,你希望在不超过最长持续时间
�
T的情况下,尽可能的选择项目,使得项目持续时间之和最大,并输出每个所选的项目持续时间。
输入示例
多组输入,第一行输入一个整数
�
(
1
≤
�
≤
1000
)
S(1≤S≤1000),表示测试数据的组数。
接下来每一行首先输入两个整数
�
(
1
≤
�
≤
1000
)
T(1≤T≤1000)和
�
(
1
≤
�
≤
2000
)
N(1≤N≤2000),表示活动最长持续时间和项目数。接下来输入
�
N个整数
�
1
,
�
2
,
.
.
.
,
�
�
(
1
≤
�
�
≤
�
)
t
1
,t
2
,…,t
n
(1≤t
t
≤T),表示每个活动的持续时间。
保证所有数据
�
N的总和不超过
2000
2000。
输出示例
对于每组测试数据,输出一组整数表示所选项目的持续时间,最后输出一个整数表示持续时间之和。
可能会有多种输出项目时间的方法,优先输出以项目下标为字典序最小的情况。
样例#1
输入样例#1
5
5 5 1 2 3 4 5
10 9 11 9 3 5 8 4 9 3 2
16 8 12 6 11 11 13 1 10 7
13 5 10 12 2 13 10
28 14 18 19 26 15 18 24 7 21 14 25 2 12 9 6
输出样例#1
1 4 5
3 5 2 10
6 10 16
13 13
19 7 2 28
样例说明
对于第二组数据,可能的输出情况有
[
3
,
5
,
2
]
,
[
3
,
4
,
3
]
,
[
5
,
3
,
2
]
,
[
8
,
2
]
[3,5,2],[3,4,3],[5,3,2],[8,2],其对应的下标序列分别为
(
3
,
4
,
9
)
,
(
3
,
6
,
8
)
,
(
4
,
8
,
9
)
,
(
5
,
9
)
(3,4,9),(3,6,8),(4,8,9),(5,9)。下标序列字典序最小的为
(
3
,
4
,
9
)
(3,4,9),所以我们输出
[
3
,
5
,
2
]
[3,5,2]。

