#P2522. Partitioning for fun and profit

    ID: 1523 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>动态规划Alberta Collegiate Programming Contest 2003.10.18

Partitioning for fun and profit

题目翻译

描述

对于一个正整数 mmnn 个元素的划分(nmn \leq m),是指一个由正整数构成的序列 a1,a2,,ana_1, a_2, \dots, a_n,满足 a1+a2++an=ma_1 + a_2 + \dots + a_n = m,并且 a1a2ana_1 \leq a_2 \leq \dots \leq a_n。你的任务是找到 mm 的一个划分,该划分在所有可能的 nn 元素划分的字典序排列中位于第 kk 个位置。

字典序的定义如下:对于两个 nn 元素的划分 a=[a1,a2,,an]a = [a_1, a_2, \dots, a_n]b=[b1,b2,,bn]b = [b_1, b_2, \dots, b_n],我们称 a<ba < b 当且仅当存在某个 1in1 \leq i \leq n,使得对于所有的 j<ij < i,有 aj=bja_j = b_j,并且 ai<bia_i < b_i。所有划分按字典序升序排列,最开始的划分是 [1,1,,1,mn+1][1, 1, \dots, 1, m - n + 1]

输入

输入的第一行包含一个整数 cc,表示测试用例的数量。接下来的 cc 行,每行包含三个数字:1m2201 \leq m \leq 2201n101 \leq n \leq 10,以及 1k1 \leq kkk 不超过 mmnn 元素划分的总数)。

输出

对于每个输入数据,输出 mm 的第 kknn 元素划分。划分的每个元素单独占一行。

输入数据 1

2
9 4 3
10 10 1

输出数据 1

1
1
3
4
1
1
1
1
1
1
1
1
1
1