#include<bits/stdc++.h> using namespace std; int n,a[100],f[100]={0},v[100]; 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(){ cin>>n; for(int i=1;i<=n;i++){ cin>>v[i]; } dfs(1); return 0; } /************************************************************** Problem: 1685 User: chenyongtian Language: C++ Result: Time Limit Exceed ****************************************************************/