Pagini recente » Cod sursa (job #2419111) | Cod sursa (job #2063370) | Cod sursa (job #1790495) | Cod sursa (job #1338792) | Cod sursa (job #2482159)
#include <iostream>
#include <fstream>
using namespace std;
int n,sol[20],v[20],ans,sel[20],d1[20],d2[20];
void bkt (int k){
if (k == n){
++ans;
if (ans == 1){
for (int i = 0; i < n; ++i)
sol[i] = v[i];
}
return;
}
int x,y;
for (int i = 0; i < n; ++i){
x = i + k;
y = n + i - k;
if (!d1[y] && !d2[x] && !sel[i]){
d1[y] = 1;
d2[x] = 1;
sel[i] = 1;
v[k] = i;
bkt (k + 1);
v[k] = 0;
sel[i] = 0;
d1[y] = 0;
d2[x] = 0;
}
}
}
int main()
{
ifstream fin ("damesah.in");
ofstream fout ("damesah.out");
fin >> n;
bkt (0);
for (int i = 0; i < n; ++i)
fout << sol[i] + 1 << " ";
fout << '\n' << ans;
return 0;
}