Pagini recente » Cod sursa (job #1883107) | Cod sursa (job #1433260) | Cod sursa (job #388384) | Cod sursa (job #2477607) | Cod sursa (job #1950632)
#include <cstdio>
#include <cmath>
using namespace std;
int n, v[15], nr;
bool col[15], diag_st[15], diag_dr[15];
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; i <= n; ++i)
if(!col[i] && !diag_st[i-k+n-1] && !diag_dr[k+i])
{
v[k] = i;
col[i] = diag_st[i-k+n-1] = diag_dr[k+i] = 1;
Dame(k+1);
col[i] = diag_st[i-k+n-1] = diag_dr[k+i] = 0;
}
}
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;
}