#include<bits/stdc++.h>
using namespace std;
int x,ans=0;
int a[17],b1[17],b2[17],b3[40];
void dfs(int n)
{
if(n>x)
{
ans++;
if(ans<=3)
{
for(int i=1;i<=x;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
}
return;
}
for(int i=1;i<=x;i++)
{
if(b1[i]==0&&b2[n+i]==0&&b3[n-i+15]==0)
{
a[n]=i;
b1[i]=1; b2[n+i]=1; b3[n-i+15]=1;
dfs(n+1);
b1[i]=0; b2[n+i]=0; b3[n-i+15]=0;
}
}
}
int main()
{
cin>>x;
dfs(1);
cout<<ans;
return 0;
}

只得了87分,下载完测试点后和输出原题测试点一样,不知道为什么错了,求大佬帮助。