Cod sursa(job #2231046)

Utilizator HumikoPostu Alexandru Humiko Data 12 august 2018 19:23:55
Problema Problema Damelor Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.02 kb
#include <bits/stdc++.h>

using namespace std;

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

int n, k;
int answer[15];

bool row[14];
bool first_Diagonal[28];
bool second_Diagonal[28];

void backtracking(int line)
{
    if ( line > n )
    {
        k++;

        if ( k == 1 )
        {
            for ( int i = 1; i <= n; ++i )
                fout<<answer[i]<<" ";
            fout<<'\n';
        }

        return;
    }

    for ( int i = 1; i <= n; ++i )
    {
        if ( row[i] == false  && first_Diagonal[i-line+n] == false && second_Diagonal[i+line] == false )
        {
            answer[line] = i;

            row[i] = true;
            first_Diagonal[i-line+n] = true;
            second_Diagonal[i+line] = true;

            backtracking(line+1);

            row[i] = false;
            first_Diagonal[i-line+n] = false;
            second_Diagonal[i+line] = false;

        }
    }
}

int main()
{
    fin>>n;

    backtracking(1);

    fout<<k<<'\n';
}