Pagini recente » Cod sursa (job #910709) | Cod sursa (job #1373435) | Cod sursa (job #1516659) | Cod sursa (job #1159218) | Cod sursa (job #1367626)
#include <fstream>
#define DIM 100
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int N,C[DIM],A[DIM],B[DIM],sol[DIM],nr;
void afis(){
for(int i=1;i<=N;i++)
fout<<sol[i]<<" ";
fout<<"\n";
}
void back(int k){
if(k==N+1){
if(nr==0)
afis();
nr++;
return;
}
for(int i=1;i<=N;i++)
if(!C[i] && !A[k+i] && !B[k-i+N]){
C[i]=1;
A[k+i]=1;
B[k-i+N]=1;
sol[k]=i;
back(k+1);
C[i]=0;
A[k+i]=0;
B[k-i+N]=0;
}
}
int main(){
fin>>N;
back(1);
fout<<nr<<"\n";
fin.close();fout.close();
return 0;
}