5247: BZOJ1247:Ural1148积木搭建
Memory Limit:162 MB
Time Limit:1 S
Judge Style:Text Compare
Creator:
Submit:0
Solved:0
Description
搭一个高度为H,包含N个积木块,并且底层为M个积木的高塔。这个高塔有一个特点,相邻两个塔的积木数相差1。比如当H=6,M=2,N=13: 我们可以这样表示一个高塔,从底层依次纪录每行的积木数,比如这个塔记录成2,3,2,3,2,1。现在任务是,求出至少使用N个砖块,且H和M给出的塔的个数,并且求出字典顺序第K小的塔。(注意不一定要使用完所有的砖块)
输入格式
第一行三个数N、H、M。以下若干行,每行一个数K。以-1结尾。
输出格式
第一行一个数,为总数。以下若干行(不超过 10行),对于每个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<=10
题目来源
没有写明来源