Cod sursa(job #2285045)

Utilizator mihaimodiMihai Modi mihaimodi Data 17 noiembrie 2018 22:52: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;

inline bool valid(int k)
{
    for(int i=1;i<k;i++)
        if(k-i==x[k]-x[i]||k-i==x[i]-x[k])
            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;
}