Pagini recente » Cod sursa (job #1940113) | Cod sursa (job #292472) | Cod sursa (job #2537535) | Cod sursa (job #256083) | Cod sursa (job #2524063)
#include <fstream>
using namespace std;
ofstream fout("damesah.out");
unsigned short int sol[13];
unsigned short int abs(short int x)
{
if(x < 0){
return -x;
}
return x;
}
bool valid(unsigned short int k)
{
for(unsigned short int i = 0; i < k; i++){
if(sol[i] == sol[k] || k - i == abs(sol[k] - sol[i])){
return false;
}
}
return true;
}
void backtr(unsigned short int n, unsigned short int &ct, unsigned short int k = 0)
{
for(unsigned short int i = 1; i <= n; i++){
sol[k] = i;
if(valid(k)){
if(k == n - 1){
if(ct == 0){
for(unsigned short int j = 0; j < n; j++){
fout << sol[j] << " ";
}
fout << '\n';
}
ct++;
} else {
backtr(n, ct, k + 1);
}
}
}
}
int main()
{
ifstream fin("damesah.in");
unsigned short int n, ct = 0;
fin >> n;
backtr(n, ct);
fout << ct;
return 0;
}