1341: 下一个排列

内存限制:128 MB 时间限制:1.000 S 标准输入输出
题目类型:传统 评测方式:文本比较 上传者:
提交:6 通过:2 通过率:33.333%

题目描述

排列(permutation)是指从 1~k k 个正整数随意摆放组成的序列。比如 [2, 5, 4, 1, 3] 是一个排列;但是 [1, 2, 2] 不是一个排列,因为有重复的 2;[2, 3, 4] 不是一个排列,因为没有 1。
我们很容易就能知道,k 长度的排列有 k! 个。那么把这些排序按字典序排列,比如 3 长度的:[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1],我们可以把 [1, 3, 2] 叫作 [1, 2, 3] 的「下一项」,对于尾部的 [3, 2, 1] 它的下一项我们把定义为 [1, 2, 3],也就是这个序列的第一项。
我将给你一个 tk 长度的序列,你要做的是分别求出它们的下一项。

输入格式

样例数 t。对于每一个样例,先给出 k,再给出一定能表示一个排列的 k 个数。

输出格式

每一个排列的下一项。

输入样例 复制

3
1
1
3
2 3 1
4
4 3 2 1

输出样例 复制

1
3 1 2
1 2 3 4

数据范围与提示

1 <= t <= 100, 1 <= k <= 104