AT_abc367_c [ABC367C] Enumerate Sequences
Description
[problemUrl]: https://atcoder.jp/contests/abc367/tasks/abc367_c
以下の条件を満たす長さ $ N $ の整数列を辞書順で小さい方から順に全て出力して下さい。
- $ i $ 番目の要素は $ 1 $ 以上 $ R_i $ 以下
- 総和が $ K $ の倍数
数列の辞書順とは? 数列 $ A\ =\ (A_1,\ \ldots,\ A_{|A|}) $ が $ B\ =\ (B_1,\ \ldots,\ B_{|B|}) $ より**辞書順で真に小さい**とは、下記の 1. と 2. のどちらかが成り立つことを言います。 1. $ |A|\ かつ\ (A_{1},\ldots,A_{|A|})\ =\ (B_1,\ldots,B_{|A|}) $ である。
2. ある整数 $ 1\leq\ i\leq\ \min\{|A|,|B|\} $ が存在して、下記の $ 2 $ つがともに成り立つ。
- $ (A_{1},\ldots,A_{i-1})\ =\ (B_1,\ldots,B_{i-1}) $
- $ A_i $
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ K $ $ R_1 $ $ R_2 $ $ \dots $ $ R_N $
Output Format
出力すべき数列が $ X $ 個あり、そのうち $ i $ 個目が $ A_i=(A_{i,1},A_{i,2},\dots,A_{i,N}) $ であったとき、答えを以下の形式で出力せよ。
> $ A_{1,1} $ $ A_{1,2} $ $ \dots $ $ A_{1,N} $ $ A_{2,1} $ $ A_{2,2} $ $ \dots $ $ A_{2,N} $ $ \vdots $ $ A_{X,1} $ $ A_{X,2} $ $ \dots $ $ A_{X,N} $
Explanation/Hint
### 制約
- 入力は全て整数
- $ 1\ \le\ N\ \le\ 8 $
- $ 2\ \le\ K\ \le\ 10 $
- $ 1\ \le\ R_i\ \le\ 5 $
### Sample Explanation 1
出力すべき数列は $ 3 $ 個で、辞書順で $ (1,1,2),(2,1,1),(2,1,3) $ です。
### Sample Explanation 2
出力すべき数列が無い場合もあります。 この場合、出力は空で構いません。