Pagini recente » Cod sursa (job #3122772) | Cod sursa (job #1370347) | Cod sursa (job #282465) | Cod sursa (job #1593008) | Cod sursa (job #1893567)
#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[20], diag_s[20];
void backtracking(int l)
{
if(l==n+1)
{
sol++;
if(sol==1)
{
for(int i=1; i<=n; ++i)
{
g<<queen[i]<<" ";
}
}
}
for(int i=1; i<=n; ++i)
{
if(!col[i] && !diag_p[i+l] && !diag_s[i+n+1-l])
{
col[i]=diag_p[i+l]=diag_s[i+n+1-l]=true;
queen[l]=i;
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;
}