Cod sursa(job #3203623)

Utilizator Sasha_12454Eric Paturan Sasha_12454 Data 14 februarie 2024 08:14:35
Problema Problema Damelor Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in ("damesah.in");
ofstream out ("damesah.out");
const int NMAX=15;
int n;
int v[NMAX];
bitset <NMAX> fr;
bool gasit=false;
int cnt;
void afis()
{
    for(int i=1; i<=n; i++)
        out<<v[i]<<" ";
    out<<'\n';
    gasit=true;
}
inline bool ok(int poz)
{
    for(int i=1; i<poz; i++)
    {
        if(v[poz]==v[i] || abs(v[i]-v[poz])==abs(i-poz))
            return false;
    }
    return true;
}
void bkt(int poz)
{
    for(int i=1; i<=n; i++)
    {
        v[poz]=i;
        if(!fr[i] && ok(poz))
        {
            if(poz==n)
            {
                if(!gasit)
                    afis();
                cnt++;
            }
            else
            {
                fr[i]=true;
                bkt(poz+1);
                fr[i]=false;
            }
        }
    }
}
int main()
{
    in>>n;
    bkt(1);
    out<<cnt;
    return 0;
}