Pagini recente » Cod sursa (job #2955779) | Cod sursa (job #2327673) | Cod sursa (job #2971132) | Cod sursa (job #451250) | Cod sursa (job #1453875)
#include <stdio.h>
#include <string.h>
#include <vector>
#include <algorithm>
using namespace std;
int n, i, contor=0;
int v[15];
bool as = false, as2= false;
bool checksol(){
int j, k, line, col;
for(i=0; i<n-1; i++){
line = i+1;
col = v[i];
for(j=1; j<n;j++){
if((col +j <= n) && (line + j <=n)){
if(col+j == v[line+j-1])
return false;
}
if((col-j >=1) && (line-j >=1)){
if(col-j == v[line-j-1])
return false;
}
if((col +j <= n) && (line - j >=1)){
if(col+j == v[line-j-1])
return false;
}
if((col -j >= 1) && (line + j <=n)){
if(col-j == v[line+j-1])
return false;
}
}
}
return true;
}
int main(){
freopen("damesah.in","r",stdin);
freopen("damesah.out","w",stdout);
scanf("%d" , &n);
for(i=1; i<=n; i++)
v[i-1] = i;
do{
as = checksol();
if(as == true){
if(as2 == false){
as2 = true;
for(i=0; i<n; i++)
printf("%d ", v[i]);
}
contor ++;
}
}while(next_permutation(v, v+n));
printf("\n%d", contor);
return 0;
}