Cod sursa(job #3245103)

Utilizator sashasushyVenedict Sasha sashasushy Data 27 septembrie 2024 15:50:25
Problema Problema Damelor Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#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;
}