Pagini recente » Cod sursa (job #1879540) | Cod sursa (job #1491028) | Cod sursa (job #1527485) | Cod sursa (job #2494442) | Cod sursa (job #2532268)
#include <bits/stdc++.h>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int n;
int c[14];
int nr;
bool u[14], ud1[25], ud2[25];
void bkt(int k, bool u[14], bool ud1[25], bool ud2[25])
{
bool u1[14], ud11[25], ud21[25];
memcpy(u1, u, 14);
memcpy(ud11, ud1, 25);
memcpy(ud21, ud2, 25);
for (int i=1;i<=n;i++)
if (!u1[i] && !ud11[k+i-1] && !ud21[k+n-i])
{
c[k]=i;
u1[i]=1;
ud11[k+i-1]=1;
ud21[k+n-i]=1;
if (k==n)
{
if (!nr)
{
for (int j=1;j<=n;j++)
g<<c[j]<<" ";
g<<"\n";
}
nr++;
}
else
bkt(k+1, u1, ud11, ud21);
u1[i]=0;
ud11[k+i-1]=0;
ud21[k+n-i]=0;
}
}
int main()
{
f>>n;
bkt(1, u, ud1, ud2);
g<<nr;
return 0;
}