AT_abc382_d [ABC382D] Keep Distance
题目描述
给定整数 $N$ 和 $M$。
请按字典序输出所有满足以下条件的长度为 $N$ 的整数序列 $(A_1,\ A_2,\ \ldots,\ A_N)$。
- $1 \leq A_i$
- 对于所有 $2 \leq i \leq N$,有 $A_{i-1} + 10 \leq A_i$
- $A_N \leq M$
数列的字典序定义如下:长度为 $N$ 的数列 $S = (S_1,\ S_2,\ \ldots,\ S_N)$ 比长度为 $N$ 的数列 $T = (T_1,\ T_2,\ \ldots,\ T_N)$ 字典序小,当且仅当存在某个整数 $1 \leq i \leq N$,满足以下两个条件:
- $(S_1,\ S_2,\ \ldots,\ S_{i-1}) = (T_1,\ T_2,\ \ldots,\ T_{i-1})$
- $S_i$ 小于 $T_i$(作为数值比较)。
输入格式
输入从标准输入读入,格式如下:
> $N$ $M$
输出格式
设满足条件的长度为 $N$ 的整数序列有 $X$ 个,请输出 $X+1$ 行。
第 $1$ 行输出 $X$。
接下来的第 $i+1$ 行($1 \leq i \leq X$),输出按字典序排列的第 $i$ 小的满足条件的整数序列,各元素用空格分隔。
说明/提示
### 限制条件
- $2 \leq N \leq 12$
- $10N - 9 \leq M \leq 10N$
- 输入的所有数值均为整数
### 样例解释 1
满足条件的 $10$ 个数列为 $(1,\ 11,\ 21),\ (1,\ 11,\ 22),\ (1,\ 11,\ 23),\ (1,\ 12,\ 22),\ (1,\ 12,\ 23),\ (1,\ 13,\ 23),\ (2,\ 12,\ 22),\ (2,\ 12,\ 23),\ (2,\ 13,\ 23),\ (3,\ 13,\ 23)$。
由 ChatGPT 4.1 翻译