Pagini recente » Cod sursa (job #1885115) | Cod sursa (job #1256234) | Cod sursa (job #77033) | Cod sursa (job #1709217) | Cod sursa (job #1094136)
#include<fstream>
#define NMAX 15
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int n,sol,v[NMAX],sw;
bool c[NMAX],d[2][2*NMAX];
void back(int k)
{
for(int i=1;i<=n;i++)
{
if(c[i] || d[0][n-k+i] || d[1][k+i-1])
continue;
v[k]=i;
c[i]=d[0][n-k+i]=d[1][k+i-1]=1;
if(k==n)
{
if(!sw)
{
sw=1;
for(int i=1;i<n;i++)
fout<<v[i]<<' ';
fout<<v[n]<<'\n';
}
sol++;
}
else
back(k+1);
c[i]=d[0][n-k+i]=d[1][k+i-1]=0;
}
}
int main()
{
fin>>n;
back(1);
fout<<sol;
return 0;
}