Pagini recente » Cod sursa (job #446626) | Cod sursa (job #1055636) | Cod sursa (job #2198643) | Cod sursa (job #2852695) | Cod sursa (job #3244653)
#include <fstream>
using namespace std;
ifstream cin("damesah.in");
ofstream cout("damesah.out");
const int MAX_N = 14;
int q[MAX_N];
bool col[MAX_N], dig1[MAX_N * 2], dig2[MAX_N * 2];
int r;
int n;
void bkt(int l, int n )
{
if ( l == n )
{
if ( r < 1 )
{
for ( int c = 0; c < n; c++ )
cout<<q[c]+1<<" ";
cout<<endl;
}
++r;
}
else
{
for ( int c = 0; c < n; c++ )
{
if ( !col[c] && !dig1[c - l + n - 1] && !dig2[l + c] )
{
q[l] = c;
col[c] = dig1[c - l + n - 1] = dig2[l + c] = true;
bkt(l + 1, n );
col[c] = dig1[c - l + n - 1] = dig2[l + c] = false;
}
}
}
}
int main()
{
cin>>n;
bkt(0, n);
cout<<r;
return 0;
}