Pagini recente » Cod sursa (job #201146) | Cod sursa (job #3283150) | Rating Tanase Lucas (LucasTS) | Cod sursa (job #1488940) | Cod sursa (job #2002802)
#include <fstream>
using namespace std;
ifstream cin("damesah.in");
ofstream cout("damesah.out");
int Perm[15];
bool used[15];
int d1[35];
int d2[35];
void backt(int q, int n, int &s){
if (q == n+1){
s++;
if (s==1){
for (int i=1; i<=n; i++){
cout<<Perm[i]<<" ";
}
cout<<'\n';
}
return;
}
for (int i=1; i<=n; i++){
if (used[i] != true && d1[q - i + n]==0 && d2[i + q]==0) {
used[i] = true;
d1[q - i + n]++;
d2[i + q]++;
Perm[q] = i;
backt(q+1, n, s);
used[i] = false;
d1[q - i + n]--;
d2[i + q]--;
}
}
}
int main() {
int n;
cin>>n;
int s=0;
backt(1,n,s);
cout<<s;
return 0;
}