Cod sursa(job #2285044)

Utilizator mihaimodiMihai Modi mihaimodi Data 17 noiembrie 2018 22:49:08
Problema Problema Damelor Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int n,sol,x[15];
bool viz[15];
char c;

int abs(int x){
    if(x<0)
        return -x;
    else
        return x;
}

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

   return 1;
}

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


inline void back(int k)
{
    for(int i=1;i<=n;i++)
        if(viz[i]==0)
        {
            x[k]=i;
            viz[i]=1;
            if(valid(k)==1)
            if(k==n)
            {
                sol++;
                if(sol==1)
                    afis();
            }
            else
                back(k+1);
            viz[i]=0;
        }
}

int main()
{
    fin>>n;
    back(1);
    fout<<sol;
    return 0;
}