Pagini recente » Cod sursa (job #81495) | Cod sursa (job #803668) | Cod sursa (job #113971) | Cod sursa (job #1137950) | Cod sursa (job #1880068)
#include <cmath>
#include <fstream>
using namespace std;
int v[14], n, sol = 0;
ofstream fout("damesah.out");
void PlaseazaRegina(int k) // Plaseaza regina pe linia k
{
int i, j, ok;
if (k == n + 1)
{
++sol;
if (sol == 1)
{
for (i = 1 ; i <= n ; ++i)
fout << v[i] << " ";
fout << '\n';
}
}
for (i = 1 ; i <= n ; ++i) // Parcurg coloanele
{
for (ok = 1 , j = 1; j < k && (ok) ; ++j) // Verific daca nu se bate pozitia mea cu reginele dinainte
if (i == v[j] || (abs(v[j] - i) == (k - j)))
ok = 0;
if (ok)
{
v[k] = i;
PlaseazaRegina(k + 1);
}
}
}
int main()
{
ifstream fin("damesah.in");
fin >> n;
PlaseazaRegina(1);
fout << sol;
return 0;
}