Pagini recente » Cod sursa (job #1364040) | Cod sursa (job #2353310) | Cod sursa (job #2835711) | Cod sursa (job #3230586) | Cod sursa (job #1903042)
#include <cstdio>
#include <cstdlib>
using namespace std;
int n, st[20], p, ok, nr, ap[20];
int valid (int k)
{
for (int i=1; i<k; i++)
if (k-i==abs(st[k]-st[i])) return 0;
return 1;
}
void permut (int k)
{
for (int x=1; x<=n; x++){
st[k]=x;
ap[st[k]]++;
if (ap[st[k]]==1){
if (valid(k)){
if (k==n){
nr++;
if (!ok){
for (int i=1; i<=k; i++)
printf("%d ", st[i]);
printf("\n");
ok=1;
}
}
else permut(k+1);
}
}
ap[st[k]]--;
}
}
int main (){
freopen("damesah.in", "r", stdin);
freopen("damesah.out", "w", stdout);
scanf("%d", &n);
permut(1);
printf("%d", nr);
return 0;
}