Pagini recente » Cod sursa (job #1808243) | Cod sursa (job #2701411) | Cod sursa (job #2820135) | Cod sursa (job #2718918) | Cod sursa (job #1893648)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int n, queen[20], sol;
bool col[20], diag_p[40], diag_s[40];
void backtracking(int l)
{
if(l==n+1)
{
if(sol<1)
{
for(int i=1; i<=n; ++i)
{
g<<queen[i]<<" ";
}
}
sol++;
}
for(int i=1; i<=n; ++i)
{
if(!col[i] && !diag_p[i+l] && !diag_s[i+n-1-l])
{
queen[l]=i;
col[i]=diag_p[i+l]=diag_s[i+n-1-l]=true;
backtracking(l+1);
col[i]=diag_p[i+l]=diag_s[i+n-1-l]=false;
}
}
}
int main()
{
f>>n;
backtracking(1);
g<<"\n"<<sol;
return 0;
}