Pagini recente » Cod sursa (job #259301) | Cod sursa (job #1710519) | Cod sursa (job #1325804) | Cod sursa (job #2223090) | Cod sursa (job #1246626)
#include <fstream>
#include <cmath>
using namespace std;
ifstream is ("damesah.in");
ofstream os ("damesah.out");
int N, x[15], sol;
bool b;
void Dame(int k);
void Write();
bool OK(int k);
int main()
{
is >> N;
Dame(1);
os << sol;
is.close();
os.close();
}
void Dame(int k)
{
if (k > N)
{
sol++;
if (b == 0)
Write(), b = 1;
return;
}
for (int i = 1; i <= N; ++i)
{
x[k] = i;
if (OK(k)) Dame(k+1);
}
};
bool OK(int k)
{
for (int i = k-1; i > 0; --i)
{
if (x[i] == x[k]) return false;
if (abs(x[k]-x[i]) == k-i) return false;
}
return true;
};
void Write()
{
for (int i = 1; i <= N; ++i)
os << x[i] << ' ';
os << '\n';
};