Pagini recente » Cod sursa (job #2586147) | Cod sursa (job #1264197) | Cod sursa (job #882068) | Cod sursa (job #1465666) | Cod sursa (job #1231569)
#include <fstream>
using namespace std;
#define ABS(x) ((x) >= 0 ? (x) : -(x))
int n, s, L[14], C[14];
ifstream ifs("damesah.in");
ofstream ofs("damesah.out");
void backtrack(int q)
{
if (q > n)
{
++s;
if (s == 1)
{
// Print first solution
for (int i = 1; i <= n; ++i)
{
ofs << C[i] << " ";
}
ofs << "\n";
}
}
else
{
for (int j = 1; j <= n; ++j)
{
bool is_safe = true;
for (int i = 1; is_safe && i < q; ++i)
{
if (C[i])
is_safe = ((j != C[i]) && ((q - i) != ABS(j - C[i])));
}
if (is_safe)
{
C[q] = j;
backtrack(q+1);
C[q] = 0;
}
}
}
}
int main()
{
ifs >> n;
backtrack(1);
ofs << s;
return 0;
}