#include <bits/stdc++.h>
using namespace std;
int a[30],b[30],c[30],d[30],cnt,n;
void dfs(int x){
    if(x>n){
        cnt++;
        if(cnt<=3){
            for(int i=1;i<=n;i++){
                cout<<d[i]<<" ";
            }
            cout<<endl;
        }
    }
    for(int i=1;i<=n;i++){
        if(!a[i]&&!b[i-x+n]&&!c[i+x]){
            d[x]=i;
            a[i]=1;
            b[i-x+n]=1;
            c[i+x]=1;
            dfs(x+1);
            a[i]=0;
            d[x]=0;
            b[i-x+n]=0;
            c[i+x]=0;
        }
    }
}
int main() {
    cin>>n;
    dfs(1);
    cout<<cnt;
    return 0;
}

广告

我的洛谷主页

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐