Pagini recente » Statistici Serban Valentin (walentines44) | Cod sursa (job #2299568) | Cod sursa (job #1601614) | Cod sursa (job #1399743) | Cod sursa (job #2028069)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("damesah.in");
ofstream g("damesah.out");
int mat[15][15],cont,n,a[14],cont2;
void afisare(){
if(cont2==0){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++)
if(mat[i][j]==1)
a[i]=j;
}
for(int i=1;i<=n;i++)
g<<a[i]<<" ";
}
cont2++;
g<<'\n';
}
bool ok(int ii,int jj){
int o=1;
for(int i=1;i<=n;i++){
if(mat[i][jj]==1 || mat[ii][i] == 1 )
o=0;
if(ii==jj){
if(mat[i][i]==1)
o=0;
}
if(mat[ii-1][jj-1] == 1 || mat[ii+1][jj+1]==1)
o=0;
}
return o;
}
void gen(int pozi,int pozj){
if( cont==n) afisare();
else {
for(int i=pozi;i<=n;i++)
for(int j=pozj;j<=n;j++)
if(ok(i,j)==1 && mat[i][j]==0){
cont++;
mat[i][j]=1;
if(j<n)
gen(i,j+1);
else gen(i+1,1);
mat[i][j]=0;
cont--;
}
}
}
int main()
{
f>>n;
gen(1,1);
g<<cont2*2;
return 0;
}