#include<bits/stdc++.h> using namespace std; int n,a[10]={0},b[10]; string s; void dfs(int x,string s){ if(x>n){ for(int i=0;i<=n;i++){ cout<<s[i]<<" "; } cout<<endl; return; } for(int i=1;i<=n;i++){ if(a[b[i]]==0){ a[b[i]]=1; dfs(x+1,s+char(b[i]+'0')); a[b[i]]=0; } } } int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>b[i]; } sort(b+1,b+1+n); dfs(1,""); return 0; } /************************************************************** Problem: 1685 User: liujinhao Language: C++ Result: Time Limit Exceed ****************************************************************/