#include<stdio.h>
int check(int x,int y,int a,int b) /*判断任两行的皇后是否在一斜线上*/
{
if((a-x==y-b)||(a-x==b-y))
return(0);
else return(1);
}
main()
{
int q,Q,w,W,e,E,r,R,t,T,y,Y,u,U,i,I,k;
q=1;w=2;e=3;r=4;t=5;y=6;u=7;i=8;k=0;
printf("-----------------------\n\n");
for(Q=1;Q<=8;Q++)
for(W=1;W<=8;W++)
for(E=1;E<=8;E++)
for(R=1;R<=8;R++)
for(T=1;T<=8;T++)
for(Y=1;Y<=8;Y++)
for(U=1;U<=8;U++)
for(I=1;I<=8;I++)
if(check(q,Q,w,W)&&check(q,Q,e,E)&&check(q,Q,r,R)&&check(q,Q,t,T)&&check(q,Q,y,Y)&&
check(q,Q,u,U)&&check(q,Q,i,I)&&check(w,W,e,E)&&check(w,W,r,R)&&check(w,W,t,T)&&
check(w,W,y,Y)&&check(w,W,u,U)&&check(w,W,i,I)&&check(e,E,r,R)&&check(e,E,t,T)&&
check(e,E,y,Y)&&check(e,E,u,U)&&check(e,E,i,I)&&check(r,R,t,T)&&check(r,R,y,Y)&&
check(r,R,u,U)&&check(r,R,i,I)&&check(t,T,y,Y)&&check(t,T,u,U)&&check(t,T,i,I)&&
check(y,Y,u,U)&&check(y,Y,i,I)&&check(u,U,i,I)&& /*判断任两行的皇后是否在一斜线上*/
Q!=W&&Q!=E&&Q!=R&&Q!=T&&Q!=Y&&Q!=U&&Q!=I&&W!=E&&W!=R&&W!=T&&W!=Y&&W!=U&&W!=I&&
E!=R&&E!=T&&E!=Y&&E!=U&&E!=I&&R!=T&&R!=Y&&R!=U&&R!=I&&T!=Y&&T!=U&&T!=I&&Y!=U&&
Y!=I&&U!=I) /*排除任两行的皇后在同一列上*/
{ printf("%d%d%d%d%d%d%d%d\t",Q,W,E,R,T,Y,U,I); k++;}
printf("\n\nba huang hou de jie you %d ge",k);
printf("\n-------------------------\n\n");
}