Pagini recente » Cod sursa (job #701862) | Cod sursa (job #296623) | Cod sursa (job #3133813) | Cod sursa (job #419642) | Cod sursa (job #3245103)
#include <bits/stdc++.h>
using namespace std;
ifstream in("damesah.in");
ofstream out("damesah.out");
int sums[30],dif[3][10],col[30],order[30],ok,cnt,n,cnt2;
void solve(int j){
if(n+1==j){
if(ok==0){
for(int i=1;i<=n;i++){
out<<order[i]<<" ";
}
out<<"\n";
ok++;
}
cnt++;
return;
}
for(int i=1;i<=n;i++){
if(col[i]==0 && sums[i+j]==0){
if(i>=j && dif[0][i-j]==0){
col[i]=dif[0][i-j]=sums[i+j]=1;
order[j]=i;
solve(j+1);
col[i]=dif[0][i-j]=sums[i+j]=0;
}
else if(i<j && dif[1][j-i]==0){
col[i]=dif[1][j-i]=sums[i+j]=1;
order[j]=i;
solve(j+1);
col[i]=dif[1][j-i]=sums[i+j]=0;
}
}
}
return;
}
int main()
{
in>>n;
solve(1);
out<<cnt;
return 0;
}