Cod sursa(job #2285151)

Utilizator mihaimodiMihai Modi mihaimodi Data 18 noiembrie 2018 11:14:34
Problema Problema Damelor Scor 50
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],ds[15],dp[15];
char c;

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(ds[k+i-1]==0&&dp[n-k+i]==0)
            {
                dp[n-k+i]=1;
                ds[k+i-1]=1;
                if(k==n)
                {
                    sol++;
                    if(sol==1)
                        afis();
                }
                else
                    back(k+1);
                ds[k+i-1]=0;
                dp[n-k+i]=0;
            }
            viz[i]=0;
        }
}

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