the code which i used is here
using namespace std;
int ld[12] = {0};
int rd[12] = {0},
vertical[12] = {0};
bool isPossible(int i, int j, int n)
{
if(rd[i+j]==1)
{
return false;
}
else if(ld[i-j+n-1] == 1)
{
return false;
}
else if(vertical[j]==1)
{
return false;
}
return true;
}
bool count(int index, int size, int &c)
{
if(index==size)
{
c++;
return false;
}
for(int i = 0;i<size;i++)
{
if(isPossible(index,i,size))
{
ld[index-i+size-1] = 1;
rd[index+i] = 1;
vertical[i] = 1;
if(count(index+1,size,c))
{
return true;
}
ld[index-i+size-1] = 0;
rd[index+i] = 0;
vertical[i] = 0;
}
}
return false;
}
int main() {
int c = 0;
int n = 0;
cin>>n;
if(!count(0,n,c))
{
cout<<c;
}
else
{
cout<<"";
}
return 0;
}