Pagini recente » Cod sursa (job #2842541) | Cod sursa (job #3193609) | Cod sursa (job #2172992) | Cod sursa (job #438046) | Cod sursa (job #2450812)
#include <iostream>
#include <math.h>
#include <vector>
#include <fstream>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int x[14];
int nr = 0;
int n;
int v[] = {0, 0, 0, 0, 2, 10, 4, 40, 92, 352, 724, 2680, 14200, 73712};
void print() {
for (int i = 1; i <= n; i++) {
fout << x[i] <<" ";
}
}
bool Valid(int k){
for (int i = 1; i < k; i++)
if ((x[k] == x[i]) || (k - i == abs(x[k] - x[i]))){
return false;
}
return true;
}
void back(int k){
for(int i = 1; i <= n; i++){
x[k] = i;
if(Valid(k) == true){
if(k==n){
print();
}else{
back(k+1);
}
break;
}
}
}
int main(){
fin >> n;
back(1);
fout <<'\n';
fout << v[n];
return 0;
}