4 solutions

  • 0
    @ 2025-3-23 20:58:30
    #include<bits/stdc++.h>
    using namespace std;
    const int N = 10;
    int a[N];
    bitset<N> vis;
    int n;
    void dfs(int deep1)
    {
        if(deep1 == n+1) 
        {
            for(int i = 1;i <= n;i++)cout<<a[i]<<" ";
            cout<<"\n";
            return;
        }
        //vis[deep1] = true;
        for(int i = 1;i <= n;i++)
        {
            if(vis[i]) continue;
            vis[i] = true;
            a[deep1] = i;
            dfs(deep1+1);
    
            a[deep1] = 0;
            vis[i] = false;
    
        }
    }
    int main()
    {
        //int n;
        cin>>n;
        dfs(1);
        
        return 0;
    }
    

    Information

    ID
    45
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    5
    Tags
    # Submissions
    354
    Accepted
    131
    Uploaded By