问题描述
按字典序升序打印满足以下条件的长度为 N 的所有整数序列。
- 第 i 个元素在 1 和 Ri 之间,包括 1 和 Ri 。
- 所有元素的和是 K 的倍数。
(如果你已经知道字典序的含义,以下可忽略:)
什么是序列的字典顺序?序列 A=(A1,…,A∣A∣) 在字典序上小于 B=(B1,…,B∣B∣),如果下面的两条之一成立:
- ∣A∣<∣B∣ 且 (A1,…,A∣A∣)=(B1,…,B∣A∣)。
- 存在整数 1≤i≤min{∣A∣,∣B∣},使得以下两个条件均为真:(a1,…,ai−1)=(B1,…,Bi−1) 且 Ai<Bi。
数据规模
所有输入值都是整数。
1≤N≤8
2≤K≤10
1≤Ri≤5
输入
输入来自标准输入,格式如下:
N K
R1 R2 … RN
输出
按以下格式打印答案,其中 X 是要打印的序列数,第 i 个序列是 Ai=(Ai,1,Ai,2,…,Ai,N):
A1,1 A1,1 … A1,N
A2,1 A2,1 … A2,N
…
AX,1 AX,1 … AX,N
3 2
2 1 3
1 1 2
2 1 1
2 1 3
要打印的序列有三个,按字典顺序分别是 (1,1,2),(2,1,1),(2,1,3)。
1 2
1
可能没有要打印的序列。在这种情况下,输出可以为空。
5 5
2 3 2 3 2
1 1 1 1 1
1 2 2 3 2
1 3 1 3 2
1 3 2 2 2
1 3 2 3 1
2 1 2 3 2
2 2 1 3 2
2 2 2 2 2
2 2 2 3 1
2 3 1 2 2
2 3 1 3 1
2 3 2 1 2
2 3 2 2 1