Pagini recente » Cod sursa (job #610996) | Cod sursa (job #2604215) | Cod sursa (job #2762797) | Cod sursa (job #260365) | Cod sursa (job #1950605)
#include <cstdio>
#include <cmath>
using namespace std;
int n, v[15], nr;
bool gasit;
void afiseaza()
{
for(int i = 1; i <= n; ++i) printf("%d ", v[i]);
}
void Dame(int k)
{
if(k == n + 1)
{
if(!gasit)
{
afiseaza();
gasit = 1;
}
nr++;
}
else
{
for(int i = 1, ok; i <= n; ++i)
{
ok = 1;
for(int j = 1; j < k; ++j)
if(v[j] == i || abs(v[j] - i) == (k - j)) ok = 0;
if(ok)
{
v[k] = i;
Dame(k+1);
}
}
}
}
int main()
{
freopen("damesah.in", "r", stdin);
freopen("damesah.out", "w", stdout);
scanf("%d", &n);
fclose(stdin);
Dame(1);
printf("\n%d", nr);
fclose(stdout);
return 0;
}