AT_abc473_d [ABC473D] Coefficient Stair
Description
非負整数からなる長さ $ N $ の列 $ A=(A _ 1,A _ 2,\ldots,A _ N) $ であって、 $ \displaystyle\sum _ {i=1} ^ Ni\times A _ i=K $ を満たすものを辞書順で小さいほうからすべて出力してください。
ここで、条件を満たす数列が $ 3\times10 ^ 5 $ 個以下であるような入力のみが与えられます。
数列の辞書順とは?数列 $ S = (S_1,S_2,\ldots,S_{|S|}) $ が数列 $ T = (T_1,T_2,\ldots,T_{|T|}) $ より**辞書順で小さい**とは,下記の 1. と 2. のどちらかが成り立つことを言います. ここで, $ |S|, |T| $ はそれぞれ $ S, T $ の長さを表します.
1. $ |S| \lt |T| $ かつ $ (S_1,S_2,\ldots,S_{|S|}) = (T_1,T_2,\ldots,T_{|S|}) $ .
2. ある整数 $ 1 \leq i \leq \min\lbrace |S|, |T| \rbrace $ が存在して,下記の $ 2 $ つがともに成り立つ.
- $ (S_1,S_2,\ldots,S_{i-1}) = (T_1,T_2,\ldots,T_{i-1}) $
- $ S_i $ が $ T_i $ より(数として)小さい.
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ K $
Output Format
条件を満たす非負整数列が $ q $ 個あるとして、 $ q $ 行にわたって出力せよ。 それぞれの行には条件を満たす非負整数列の要素を空白を区切りとして順に出力せよ。 どの数列についても、その数列より前に出力された数列はどれもその数列より辞書順で小さくなければならない。
Explanation/Hint
### Sample Explanation 1
例えば、列 $ (0,1,2) $ は $ 0\times1+1\times2+2\times3=0+2+6=8 $ となるため条件を満たします。 条件を満たす列であってこれより辞書順で小さいものは存在しないため、 $ 1 $ 行目には `0 1 2` を出力してください。
$ (0,1,2) $ とあわせて $ 10 $ 個の列が条件を満たします。 これらを辞書順で小さいほうから出力してください。
### Constraints
- $ 1\le N\le 10 $
- $ 1\le K\le 2\times10 ^ 5 $
- 条件を満たす数列は $ 3\times10 ^ 5 $ 個以下
- 入力はすべて整数