#include<bits/stdc++.h> using namespace std; int n,a[1000],f[1000]={0},v[1000]; void dfs(int step){ if(step>n){ for(int i=1;i<=n;i++){ cout<<a[i]<<" "; } cout<<endl; } for(int i=1;i<=n;i++){ if(f[i]==0){ f[i]=1; a[step]=v[i]; dfs(step+1); f[i]=0; } } } int main(){ //freopen("ans.out","w",stdout); cin>>n; for(int i=1;i<=n;i++){ cin>>v[i]; } sort(v+1,v+n+1); dfs(1); return 0; } /************************************************************** Problem: 1685 User: chenyongtian Language: C++ Result: Time Limit Exceed ****************************************************************/