怎样让以下代码运行时,只输出前三组。
#include <bits/stdc++.h>
using namespace std;
int n,tot;
int a[10],b[10],c[10],d[10];
void print()
{
tot++;
for(int i=1;i<=n;i++)
{
cout << a[i] << " ";
}
cout << endl;
}
int search(int i)
{
for(int j=1;j<=n;j++)
{
if(b[j]==0 && c[i+j]==0 && d[i-j+n-1]==0)
{
a[i]=j;
b[j]=1;
c[i+j]=1;
d[i-j+n-1]=1;
if(i==n)
{
print();
}
else
{
search(i+1);
}
b[j]=0;
c[i+j]=0;
d[i-j+n-1]=0;
}
}
}
int main()
{
cin >> n;
search(1);
cout << tot;
return 0;
}