31void PrintSol(
const std::array<std::array<int, n>, n>& board) {
32 for (
int i = 0; i < n; i++) {
33 for (
int j = 0; j < n; j++) {
34 std::cout << board[i][j] <<
" ";
36 std::cout << std::endl;
38 std::cout << std::endl;
51bool CanIMove(
const std::array<std::array<int, n>, n>& board,
int row,
54 for (
int i = 0; i < col; i++) {
55 if (board[row][i] == 1) {
60 for (
int i = row, j = col; i >= 0 && j >= 0; i--, j--) {
61 if (board[i][j] == 1) {
66 for (
int i = row, j = col; i <= n - 1 && j >= 0; i++, j--) {
67 if (board[i][j] == 1) {
81void NQueenSol(std::array<std::array<int, n>, n> board,
int col) {
86 for (
int i = 0; i < n; i++) {
103 std::array<std::array<int, n>, n> board{0};
Functions for the Eight Queens puzzle with all solutions.
void NQueenSol(std::array< std::array< int, n >, n > board, int col)
Main function to solve the N Queens problem.
bool CanIMove(const std::array< std::array< int, n >, n > &board, int row, int col)
Check if a queen can be placed on the matrix.
void PrintSol(const std::array< std::array< int, n >, n > &board)
Utility function to print matrix.