/*
ID: 551100k1
LANG: C++
TASK: checker
*/
#include<stdio.h>
int a[20]={0},b[50]={0},c[50]={0};
int s[20],n,add=0;
void dfs(int k){
int i;
if(k==n){
if(add<3){
printf("%d",s[0]+1);
for(i=1;i<n;i++)
printf(" %d",s[i]+1);
puts("");
}
add++;
return;
}
for(i=0;i<n;i++)
if(a[i]==0 && b[i-k+14]==0 && c[i+k]==0){
a[i]=1,b[i-k+14]=1,c[i+k]=1;
s[k]=i;
dfs(k+1);
a[i]=0,b[i-k+14]=0,c[i+k]=0;
}
}
int main(){
freopen("checker.in","r",stdin);
freopen("checker.out","w",stdout);
scanf("%d",&n);
dfs(0);
printf("%d\n",add);
}
沒有留言:
張貼留言