Pagini recente » Cod sursa (job #639554) | Cod sursa (job #2452471) | Cod sursa (job #2460544) | Cod sursa (job #1946835) | Cod sursa (job #1486947)
#include <iostream>
#include <vector>
#define DN 15
using namespace std;
int ok;
int col[DN], diag1[DN], diag2[DN], sol[DN];
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int find_sol(int n, int k) {
if(n == k){
if(!ok){
for(int i = 0; i < n; ++i)
cout << sol[i] << " ";
cout << '\n';
ok = 1;
}
return 1;
}
int res = 0;
for(int i = 0; i < n; ++i)
if(!col[i] && !diag1[n + k - i] && !diag2[i+k]){
col[i] = 1;
diag1[n + k - i] = 1;
diag2[i+k] = 1;
sol[k] = i+1;
res += find_sol(n, k+1);
col[i] = 0;
diag1[n + k - i] = 0;
diag2[i+k] = 0;
}
return res;
}
int main() {
int n;
cin >> n;
ok = 0;
cout << find_sol(n, 0);
return 0;
}