Pagini recente » Cod sursa (job #2402940) | Cod sursa (job #561140) | Cod sursa (job #2732854) | Cod sursa (job #2952247) | Cod sursa (job #2154554)
#include <cstdio>
#define N 15
using namespace std;
int n, cnt, queen[N];
bool col[N], main_diag[N*2], sec_diag[N*2];
void backtracking(int k)
{
if(k==n+1)
{
if(cnt<1)
{
for(int i=1; i<=n; i++)
{
printf("%d ", queen[i]);
}
printf("\n");
}
cnt++;
}
else
{
for(int i=1; i<=n; i++)
{
if(!col[i] && !main_diag[i-k+n-1] && !sec_diag[i+k])
{
queen[k]=i;
col[i]=main_diag[i-k+n-1]=sec_diag[i+k]=true;
backtracking(k+1);
col[i]=main_diag[i-k+n-1]=sec_diag[i+k]=false;
}
}
}
}
int main()
{
freopen("damesah.in", "r", stdin);
freopen("damesah.out", "w", stdout);
scanf("%d ", &n);
backtracking(1);
printf("%d\n", cnt);
return 0;
}