Pagini recente » Cod sursa (job #2780348) | Cod sursa (job #1056961) | Cod sursa (job #762915) | Cod sursa (job #1752202) | Cod sursa (job #1412867)
#include <bits/stdc++.h>
using namespace std;
int n, ok, sol[15], d1[15], d2[15], col[15], nr;
void back(int k)
{
int i;
if(k == n + 1)
{
nr++;
if(!ok)
{ for(i = 1; i <= n; i++)
printf("%d ", sol[i]);
ok = 1;
}
return;
}
for(i = 1; i <= n; i++)
if(!col[i] && !d1[n - k + i] && !d2[k + i - 1])
{
d1[n - k + i] = 1;
d2[k + i - 1] = 1;
col[i] = 1;
sol[k] = i;
back(k + 1);
d1[n - k + i] = 0;
d2[k + i - 1] = 0;
col[i] = 0;
}
}
int main()
{
freopen("damesah.in", "r", stdin);
freopen("damesah.out", "w", stdout);
scanf("%d", &n);
back(1);
printf("\n%d", nr);
return 0;
}