Cod sursa(job #2522222)

Utilizator AndreibatmanAndrei Croitoriu Andreibatman Data 12 ianuarie 2020 10:02:22
Problema Problema Damelor Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.97 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("damesah.in");
ofstream fout ("damesah.out");
short n;
short a[20];
bool used_lin[20] , used_col[20] , used_dp[40] , used_ds[40];
int ans;
void bkt(short k)
{
    if(k == n + 1)
    {
        ++ans;
        if(ans == 1)
        {
            for(short i = 1 ; i <= n ; i++)
                fout << a[i] << ' ';
            fout<<'\n';
        }
    }
    else
    {
        short i = k;
        for(short j = 1 ; j <= n ; j++)
        {
            int ds = i + j , dp = n - j + i + 1;
            if(!used_lin[i] && !used_col[j] && !used_dp[dp] && !used_ds[ds])
            {
                used_lin[i] = used_col[j] = used_dp[dp] = used_ds[ds] = 1;
                a[k] = j;

                bkt(k + 1);
                used_lin[i] = used_col[j] = used_dp[dp] = used_ds[ds] = 0;
            }
        }
    }
}
int main()
{
    fin >> n;
    bkt(1);
    fout << ans;
    return 0;
}