Pagini recente » Cod sursa (job #2599149) | Cod sursa (job #2563626) | Cod sursa (job #2200983) | Cod sursa (job #1405191) | Cod sursa (job #2522222)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("damesah.in");
ofstream fout ("damesah.out");
short n;
short a[20];
bool used_lin[20] , used_col[20] , used_dp[40] , used_ds[40];
int ans;
void bkt(short k)
{
if(k == n + 1)
{
++ans;
if(ans == 1)
{
for(short i = 1 ; i <= n ; i++)
fout << a[i] << ' ';
fout<<'\n';
}
}
else
{
short i = k;
for(short j = 1 ; j <= n ; j++)
{
int ds = i + j , dp = n - j + i + 1;
if(!used_lin[i] && !used_col[j] && !used_dp[dp] && !used_ds[ds])
{
used_lin[i] = used_col[j] = used_dp[dp] = used_ds[ds] = 1;
a[k] = j;
bkt(k + 1);
used_lin[i] = used_col[j] = used_dp[dp] = used_ds[ds] = 0;
}
}
}
}
int main()
{
fin >> n;
bkt(1);
fout << ans;
return 0;
}