求某一整數序列的全排列問題
Time Limit:1000MS Memory Limit:65536K
Total Submit:45 Accepted:20
Description
現有一整數序列如:123,請計算出它的全排列。
Input
輸入資料有兩行組成,第一行為整數序列的長度,第二行為整數序列,序列元素之間以Tab符相隔。
Output
輸出資料為整數序列的全排列,每一個排列單獨占一行。
Sample Input
3
1 2 3
Sample Output
123
132
213
231
312
321
Source
/*
* http://183.167.205.82:8081/JudgeOnline/showproblem?problem_id=1048
* by jtahstu on 2015/2/7 7:00
* 知識點: 排列生成器 按字典序的下一個排列 next_permutation()
* 按字典序的前一個排列 prev_permutation()
*/
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int main() {
int m;
string s,a;
cin>>m;
for(int i=0; i<m; i++) {
cin>>a;
s+=a;
}
cout<<s<<endl;
while(next_permutation(s.begin(),s.end()))
cout<<s<<endl;
return 0;
}