Language: C++

// 8クィーン問題
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<stack>
#include<algorithm>
#include<iostream>
#include<cmath>
#include<vector>

#include<queue>

using namespace std;

const int SQUARE_NUM = 8;

// 駒が存在するかの定義
const int CAN_PUT = 0;      // 置くことが出来るマス
const int EXIST = 1;        // 駒が存在するマス
const int CAN_NOT_PUT = 2;  //置くことが出来ないマス

// チェス盤の状態を保持する配列
int ChessBoard[SQUARE_NUM + 1][SQUARE_NUM + 1];

bool DiagonalJudgment(int row, int column);
void calc_start_point(int *p_row, int *p_column);
bool JudgmentPiece(int start_row, int start_column, int row, int column, int direction);

int main(void)
{

    int k, num_1, num_2;

    // 行, 列で駒を置くことが出来るかを保持する配列
    int row_state[SQUARE_NUM + 1], column_state[SQUARE_NUM + 1];

    // 配列の初期化
    for(int i = 0; i < SQUARE_NUM + 1; i++)
    {
        row_state[i] = CAN_PUT;
        column_state[i] = CAN_PUT;

        for(int j = 0; j < SQUARE_NUM + 1; j++)
        {
            ChessBoard[i][j] = CAN_PUT;
        }
    }

    cin >> k;

    for(int i = 0; i < k; i++)
    {
        cin >> num_1 >> num_2;

        ChessBoard[num_1][num_2] = EXIST;

        // 駒の存在する行と列を保存する
        row_state[num_1] = EXIST;
        column_state[num_2] = EXIST;
    }

    int OK_piece_num = k;

    if( OK_piece_num == SQUARE_NUM )
    {
        break;
    }

    return 0;
}

// 駒の斜め方向の判定を実施する関数
// true : 斜めに駒がいる, false : 斜めに駒はいない
bool DiagonalJudgment(int row, int column)
{
    bool ret = false, left_side, right_side;


    // 左斜め上と右斜め上を開始点とする
    int left_s_row, left_s_column, right_s_row, right_s_column;

    left_s_row = right_s_row = row;
    left_s_column = right_s_column = column;

    // 開始点を求める
    calc_start_point(&left_s_row, &left_s_column);
    calc_start_point(&right_s_row, &right_s_column);

    // 駒が存在するかを検索する
    right_side = JudgmentPiece(left_s_row, left_s_column, row, column, 0);
    left_side = JudgmentPiece(right_s_row, right_s_column, row, column, 1);

    ret = right_side && left_side;

    return ret;
}

// 斜め方向の開始点を求める
void calc_start_point(int *p_row, int *p_column)
{
    int range = *p_row;

    for(int i = 0; i < range; i++)
    {
        if( ( 0 < *p_row && *p_row < SQUARE_NUM )
            && ( 0 < *p_column && *p_column < SQUARE_NUM ) )
        {
            (*p_row)--;
            (*p_column)--;
        }
    }

    return;
}

// 斜め方向に駒が存在しないかを確認する
// start_row, start_column : 検索開始点
// row, column : 駒が存在する地点
// direction : 方向 ( 0 : 右下方向, 1 : 左下方向 )
bool JudgmentPiece(int start_row, int start_column, int row, int column, int direction)
{
    bool ret = false;

    for(int i = 0; i < SQUARE_NUM; i++)
    {
        if( start_row < 0  || SQUARE_NUM < start_row
            || start_column  < 0  || SQUARE_NUM < start_column )
        {
            // 範囲外のマス目になったら処理終了
            break;
        }

        if( ( start_row != row && start_column != column )
             && ChessBoard[start_row][start_column] == EXIST )
        {
            // 駒が存在した
            ret = true;
            break;
        }

        start_row++;

        if( direction == 0 )
        {
            // 右下方向
            start_column++;
        }
        else
        {
            // 左下方向
            start_column--;
        }
    }

    return ret;
}



Compiler output:
a.cc: In function 'int main()':
a.cc:66:9: error: break statement not within loop or switch
   66 |         break;
      |         ^~~~~