Pagini recente » Cod sursa (job #1337327) | Cod sursa (job #1188406) | Cod sursa (job #2631777) | Cod sursa (job #2574691) | Cod sursa (job #3244428)
#include <bits/stdc++.h>
using namespace std;
int v[15],n,cnt=0;
int frcol[15],frdiag1[30],frdiag2[30];
ofstream *file;
void backtraking(int x)
{
if(x == n+1)
{
++cnt;
if(cnt == 1) for(int i=1; i<=n; ++i) *file<<v[i]<<' ';
}
else
{
for(int i=1; i<=n; ++i)
{
if(frcol[i]) continue;
if(frdiag1[i+x-1]) continue;
if(frdiag2[i-x+n]) continue;
frcol[i] = frdiag1[i+x-1] = frdiag2[i-x+n] = 1;
v[x] = i;
backtraking(x+1);
frcol[i] = frdiag1[i+x-1] = frdiag2[i-x+n] = 0;
}
}
}
int main()
{
ifstream fin ("damesah.in");
ofstream fout ("damesah.out");
ios::sync_with_stdio(false); fin.tie(0); fout.tie(0);
fin>>n;
file = &fout;
backtraking(1);
fout<<'\n'<<cnt;
return 0;
}