8407: STL 函数使用 —— prev_permutation()
[Creator : ]
Description
【介绍】
【头文件】
Standard Template Library: Algorithms#include<algorithm>
【作用】
Transform range to next permutationTransform range to previous permutationRearranges the elements in the range [first,last) into the previous lexicographically-ordered permutation.
default (1) template <class BidirectionalIterator> bool prev_permutation (BidirectionalIterator first, BidirectionalIterator last ); custom (2) template <class BidirectionalIterator, class Compare> bool prev_permutation (BidirectionalIterator first, BidirectionalIterator last, Compare comp);
【任务】
我们通过本题,掌握 prev_permutation() 函数使用方法。给一个长度为 $n\ (1≤n≤9)$ 的数列,按照字典序从小到大输出全排列。
Input
第一行包括一个整数 $n\ (1≤n≤9)$。
第二行输入一个长度为 $n$ 的互不相同的整数 $a_i\ (−20≤a_i≤10)$。
第二行输入一个长度为 $n$ 的互不相同的整数 $a_i\ (−20≤a_i≤10)$。
Output
输出包括 $n!$ 行。
按照从大到小输出对应的字典序。
按照从大到小输出对应的字典序。
Sample 1 Input
3
1 3 4
Sample 1 Output
4 3 1
4 1 3
3 4 1
3 1 4
1 4 3
1 3 4
Sample 2 Input
4
5 7 1 9
Sample 2 Output
9 7 5 1
9 7 1 5
9 5 7 1
9 5 1 7
9 1 7 5
9 1 5 7
7 9 5 1
7 9 1 5
7 5 9 1
7 5 1 9
7 1 9 5
7 1 5 9
5 9 7 1
5 9 1 7
5 7 9 1
5 7 1 9
5 1 9 7
5 1 7 9
1 9 7 5
1 9 5 7
1 7 9 5
1 7 5 9
1 5 9 7
1 5 7 9