Pagini recente » Cod sursa (job #2530459) | Cod sursa (job #3240855) | Cod sursa (job #3197662) | Cod sursa (job #1136802) | Cod sursa (job #1390115)
#include <cmath>
#include <fstream>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int n, res, v[15];
bool firstSolution = false;
void writeSolution()
{
for (int i = 1; i <= n; ++i)
fout << v[i] << ' ';
fout << '\n';
}
bool isValid(int k)
{
for (int i = 1; i < k; ++i)
if (k - i == abs(v[k] - v[i]) || v[k] == v[i])
return false;
return true;
}
void bkt(int k)
{
if (k == n + 1)
{
++res;
if (!firstSolution)
{
firstSolution = true;
writeSolution();
}
}
else
{
for (int i = 1; i <= n; ++i)
{
v[k] = i;
if (isValid(k))
bkt(k + 1);
v[k] = 0;
}
}
}
int main()
{
fin >> n;
bkt(1);
fout << res << '\n';
return 0;
}