Cod sursa(job #2111860)

Utilizator IsacLucianIsac Lucian IsacLucian Data 22 ianuarie 2018 19:06:41
Problema Problema Damelor Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("damesah.in");
ofstream fout("damesah.out");

int n,x[14],ok,cnt;
bitset<14>viz;

inline bool Valid(int k,int j)
{
    for(int i=1;i<k;i++)
        if(k-i==abs(j-x[i]))return 0;

    return 1;
}

void Afisare()
{
    for(int i=1;i<=n;i++)
        fout<<x[i]<<" ";
    fout<<"\n";
}

void Back(int k)
{
    if(k==n+1)
    {
        if(ok==0)
        {
            Afisare();
            ok=1;
        }
        cnt++;
        return ;
    }

    for(int i=1;i<=n;i++)
        if(!viz[i] && Valid(k,i))
        {
            viz[i]=1;
            x[k]=i;
            Back(k+1);
            viz[i]=0;
        }
}

int main()
{
    fin>>n;
    Back(1);
    fout<<cnt;
    return 0;
}