SP479 TPERML - Permutation generator

题目描述

给定一个 $n$ 元素排列序列,对于其中的每个索引,从该位置开始,按字典序输出 $m$ 个连续的排列,每行一个排列。在连续的测试输出之间,应插入一个空行。当到达排列的末尾时,下一个排列应回到第一个。

输入格式

输入包含多组测试数据: - 第一行是整数 $t$,表示测试次数($t \leq 1000$)。 - 接下来的每行包含三个整数:$n$、索引、$m$。 - $n$ 表示排列中元素的数量($2 \leq n \leq 100$)。 - "索引"是第一个排列在序列中的索引($0 \leq \text{索引} < n!$)。 - $m$ 是需要输出的排列数量($1 \leq m \leq 100$)。

输出格式

对于每组测试,输出 $m$ 个从给定索引开始的连续排列。排列之间用空格分隔。 每组输出的最后,不要忘记插入一个空行与下一个组的输出内容分隔。 ### 示例: ``` p1 p2 ... p(n-1) pn p1 p2 ... pn p(n-1) p1 p2 ... p(n-1) pn p1 p2 ... pn p(n-1) ```

说明/提示

- 元素个数范围:$2 \leq n \leq 100$ - 索引范围:$0 \leq$ 索引 $< n!$ - 输出排列的数目范围:$1 \leq m \leq 100$ - 测试次数的上限:$t \leq 1000$ **本翻译由 AI 自动生成**