Pagini recente » Cod sursa (job #2566671) | Cod sursa (job #2936434) | Cod sursa (job #1827034) | Cod sursa (job #2937902) | Cod sursa (job #2474152)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int n,v[14],use[14],diagonala_principala[26],diagonala_secundara[26],sol;
void afisare(int k)
{
for(int i=1;i<=k;i++)
g<<v[i]<<" ";
g<<"\n";
}
void bkt(int k)
{
if(k==n+1)
{
sol++;
if(sol==1)
afisare(n);
}
else
{
for(int i=1;i<=n;i++)
{
if(use[i]==0 && diagonala_principala[i-k+n]==0 && diagonala_secundara[i+k-1]==0)
{
v[k]=i;
use[i]=1;
diagonala_principala[i-k+n]=1;
diagonala_secundara[i+k-1]=1;
bkt(k+1);
v[k]=0;
use[i]=0;
diagonala_principala[i-k+n]=0;
diagonala_secundara[i+k-1]=0;
}
}
}
}
int main()
{
f>>n;
bkt(1);
g<<sol;
return 0;
}