#include <iostream>
using namespace std;
int chess[8][8];
bool put(int move);
bool check(int,int);
int main()
{
int i,j;
printf("The Chess Befor Inserting Minister In It:\n");
for(i=0;i<8;++i)
{
for(j=0;j<8;j++)
printf("%6d ",chess[i][j]);
printf("\n");
}
put(0);
printf("The Chess After Inserting 8 Minister In It:\n");
for(i=0;i<8;++i)
{
for(j=0;j<8;j++)
printf("%6d ",chess[i][j]);
printf("\n\n");
}
return 0;
}
bool put(int move)
{
if(move>=8)
return true;
int i;
for(i=0;i<8;i++)
if(check(move,i))
{
chess[move][i]=1;
if( put(move+1))
return true;
else
chess[move][i]=0;
}
return false;
}
bool check(int row,int col)
{
int i,j;
for(i=0;i<8;i++)
if(chess[i][col])
return false;
for(i=row+1,j=col+1;i<8&&j<8;++i,++j)
if(chess[i][j])
return false;
for(i=row-1,j=col-1;i>=0&&j>=0;--i,--j)
if(chess[i][j])
return false;
for(i=row-1,j=col+1;i>=0&&col<8;i--,++j)
if(chess[i][j])
return false;
for(i=row+1,j=col-1;i<8&&col>=0;++i,--j)
if(chess[i][j])
return false;
return true;
}