Pagini recente » Cod sursa (job #2302429) | Cod sursa (job #306941) | Cod sursa (job #1658383) | Cod sursa (job #2727467) | Cod sursa (job #2442185)
#include <fstream>
using namespace std;
int n,m[15][15],fl[14],fc[14],fds[30],fdp[30],solutii,ok=1;
ifstream cin("damesah.in");
ofstream cout("damesah.out");
bool verific(int linie, int coloana, int diagsec, int diagpri){
if(fl[linie])
return false;
if(fc[coloana])
return false;
if(fds[diagsec])
return false;
if(fdp[diagpri])
return false;
return true;
}
void dama(int linie){
if(linie==n+1){
solutii++;
if(ok==1){
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
if(m[i][j]==1)
cout<<j<<' ';
cout<<'\n';
ok=0;
}
return;
}
for(int i=1; i<=n; i++)
if(verific(linie,i,i+linie,n-i+linie-1)){
m[linie][i]=1;
fl[linie]=1;
fc[i]=1;
fdp[n-i+linie-1]=1;
fds[i+linie]=1;
dama(linie+1);
m[linie][i]=0;
fl[linie]=0;
fc[i]=0;
fds[i+linie]=0;
fdp[n-i+linie-1]=0;
}
};
int main()
{
cin>>n;
dama(1);
cout<<solutii;
return 0;
}