Pagini recente » Cod sursa (job #1714334) | Cod sursa (job #2793074) | Cod sursa (job #171387) | Cod sursa (job #1334745) | Cod sursa (job #2297576)
#include <fstream>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int st[13],n,sol=0;
bool c[13],diagp[25],diags[25];
bool verifica(int niv)
{
if(c[st[niv]] || diagp[niv-st[niv]+n] || diags[niv+st[niv]]) return 0;
return 1;
}
void backtr(int niv)
{
for(int i=0; i<n; ++i)
{
st[niv]=i;
if(verifica(niv))
{
c[i]=1;
diagp[niv-i+n]=1;
diags[niv+i]=1;
if(niv<n-1)
backtr(niv+1);
else
{
if(sol==0)
{
for(int i=0; i<n; ++i)
g<<st[i]+1<<' ';
g<<'\n';
}
++sol;
}
c[i]=0;
diagp[niv-i+n]=0;
diags[niv+i]=0;
}
}
}
int main()
{
f>>n;
backtr(0);
g<<sol<<'\n';
return 0;
}