#P1247. Ural1148积木搭建

Ural1148积木搭建

题目描述

搭一个高度为 HH,包含 NN 个积木块,并且底层为 MM 个积木的高塔。这个高塔有一个特点,相邻两个塔的积木数相差 11。比如当 H=6,M=2,N=13H=6,M=2,N=13 : 我们可以这样表示一个高塔,从底层依次纪录每行的积木数,比如这个塔记录成 2,3,2,3,2,1。现在任务是,求出至少使用 NN 个砖块,且 HHMM 给出的塔的个数,并且求出字典顺序第 KK 小的塔。(注意不一定要使用完所有的砖块)

输入格式

第一行三个数 NHMN、H、M。以下若干行,每行一个数 KK。以-1结尾。

输出格式

第一行一个数,为总数。以下若干行(不超过 1010 行),对于每个 KK,给出相应的塔。数据保证K K 合法。

22 5 4
1
10
-1
10
4 3 2 1 2
4 5 4 5 4

提示

100%的数据 N<=32767,H<=60,M<=10N<=32767,H<=60,M<=10