Pagini recente » Cod sursa (job #849831) | Cod sursa (job #1883887) | Cod sursa (job #1748145) | Cod sursa (job #923532) | Cod sursa (job #2823845)
#include <bits/stdc++.h>
#define DAU ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define PLEC return 0;
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
#define cin fin
#define cout fout
#define N 15
int n, st[N], f[N], d1[2*N], d2[2*N], ok, sol;
int mod(int x)
{
if(x < 0)return -x;
else return x;
}
void afis()
{
if(sol == 0)
{
for(int i = 1 ; i <= n ; i++)
{
cout << st[i] << " ";
}
cout << '\n';
}
sol++;
}
bool valid(int k)
{
for(int i = 1 ; i < k ; i++)
{
if(k-i == mod(st[k]-st[i]))return false;
}
return true;
}
void bkt(int k)
{
if(k > n)
{
if(sol == 0)
{
for(int i = 1 ; i <= n ; i++)
{
cout << st[i] << " ";
}
cout << '\n';
}
sol++;
return ;
}
for(int i = 1 ; i <= n ; i++)
{
int v = k+i, w = n+k-i;
if(f[i] == 0 && d1[v] == 0 && d2[w] == 0)
{
d1[v] = 1;
d2[w] = 1;
f[i] = 1;
st[k] = i;
bkt(k+1);
f[i] = 0;
d1[v] = 0;
d2[w] = 0;
}
}
}
int main()
{
DAU
cin >> n;
bkt(1);
cout << sol;
PLEC
}