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