Cod sursa(job #3226225)

Utilizator Alex_DumitrascuAlex Dumitrascu Alex_Dumitrascu Data 20 aprilie 2024 18:11:12
Problema Problema Damelor Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.97 kb
#include <bits/stdc++.h>
#define ll long long
using namespace std;

ifstream fin ("damesah.in");
ofstream fout ("damesah.out");
ll st[15], n, cnt=0;
bool freq[15];
bool valid (ll k)
{
    for (ll i=1; i<k; i++) {
        //if (st[i]==st[k]) return false;
        ll ii=i, ij=n-st[i]+1;
        ll ki=k, kj=n-st[k]+1;
        if (abs(ii-ki)==abs(ij-kj)) return false;
    }
    return true;
}
void back(ll k)
{
    for (ll i=1; i<=n; i++) {
        if (freq[i]) continue;
        st[k]=i;
        freq[i]=true;
        if (valid(k)) {
            if (k==n) {
                if (cnt==0) {
                    for (ll j=1; j<=n; j++) {
                        fout<<st[j]<<' ';
                    }
                    fout<<'\n';
                }
                cnt++;
            }
            else {
                back(k+1);
            }
        }
        freq[i]=false;
    }
}
int main()
{
    fin.tie(0); fin.sync_with_stdio(false);
    fin>>n;
    back(1);
    fout<<cnt;
    return 0;
}