Pagini recente » Cod sursa (job #2826677) | Diferente pentru utilizator/djok intre reviziile 141 si 22 | Statistici Viorel (DViorel) | Sprijină Asociația infoarena! - Sistemul 2% | Cod sursa (job #2474814)
#include <fstream>
using namespace std;
const int maxN=14;
ifstream f("dame.in");
ofstream g("dame.out");
int n,sol;
int stk[maxN];
bool vis[maxN];
bool mDiag[2*maxN];
bool sDiag[2*maxN];
void bkt(int k){
if(k==n+1){
if(sol==0){
for(int i=1;i<=n;i++){
g<<stk[i]<<" ";
}
g<<'\n';
}
sol++;
return;
}
for(int i=1;i<=n;i++){
if(vis[i]==false && mDiag[i-k+n]==false && sDiag[i+k]==false){
stk[k]=i;
vis[i]=true;
mDiag[i-k+n]=true;
sDiag[i+k]=true;
bkt(k+1);
vis[i]=false;
mDiag[i-k+n]=false;
sDiag[i+k]=false;
}
}
}
int main(){
f>>n;
bkt(1);
g<<sol;
return 0;
}