Вопрос задан 22.08.2026 в 15:31. Предмет Информатика. Спрашивает Торкунова Виктория.

Шахматный ферзь ходит по диагонали, горизонтали или вертикали. Даны две различные клетки на шахматной доске без фигур. Определите, может ли ферзь попасть с первой клетки на вторую одним ходом.
Формат ввода: Программа получает на вход четыре целых числа от 1 до 8. Первая пара чисел задаёт номер столбца и номер строки для первой клетки. Вторая пара чисел аналогично задаёт вторую клетку.
Формат вывода: Программа должна вывести YES, если из первой клетки ходом ферзя можно попасть во вторую, или NO в противном случае. (Язык: C++)

Перейти к ответам

Ответы на вопрос

Отвечает Николаева Ксения.

Идея: ферзь может попасть на другую клетку одним ходом, если клетки находятся в одном столбце, в одной строке или на одной диагонали.

Условие для диагонали: разность столбцов по модулю равна разности строк по модулю: \( |x_1 - x_2| = |y_1 - y_2| \).

Решение на C++:
#include <iostream>
#include <cstdlib>
using namespace std;

int main() {
    int x1, y1, x2, y2;
    cin >> x1 >> y1 >> x2 >> y2;

    if (x1 == x2 || y1 == y2 || abs(x1 - x2) == abs(y1 - y2))
        cout << "YES";
    else
        cout << "NO";

    return 0;
}

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос