Pagini recente » Cod sursa (job #1802029) | Cod sursa (job #1894617) | Cod sursa (job #1433533) | Cod sursa (job #2671929) | Cod sursa (job #1486949)
#include <iostream>
#include <fstream>
#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)
fout << sol[i] << " ";
fout << '\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;
fin >> n;
ok = 0;
fout << find_sol(n, 0);
return 0;
}