天天看點

1048 -- 求某一整數序列的全排列問題

求某一整數序列的全排列問題

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;
}