Ход слона Шахматный слон ходит по диагонали. Даны две различные клетки шахматной доски, определите, может ли слон попасть с первой клетки на вторую одним ходом.

Входные данные

Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки.

Выходные данные

Программа должна вывести YES, если из первой клетки ходом слона можно попасть во вторую, или NO в противном случае.

Примеры

Ввод

Примеры

Ввод

4

4

5

5

Вывод

YES

Ввод

4

4

5

4
Вывод No
ПИСАТЬ НА С++

poroshind poroshind    1   03.03.2021 09:10    81

Ответы
VarmaleyYouTuber VarmaleyYouTuber  10.01.2024 16:27
Хорошо, давайте разберемся с этой задачей.

Для решения данной задачи нам необходимо определить, может ли шахматный слон попасть с одной клетки на другую по диагонали.

Для начала, давайте разберемся в том, как ходит слон. Слон может двигаться только по диагонали, то есть он может перемещаться только на клетки, которые лежат на одной диагонали с его исходной клеткой. Диагонали на шахматной доске идут под углами 45 градусов к горизонтали.

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

Чтобы решить данную задачу, нам необходимо сравнить разности между столбцами и строками исходных и конечных клеток. Если разности по модулю совпадают, то клетки лежат на одной диагонали и слон может попасть на конечную клетку одним ходом. Если разности не совпадают, то слон не может попасть на конечную клетку одним ходом.

Теперь приступим к написанию программы на C++:

```cpp
#include
#include

int main() {
int column1, row1, column2, row2;
std::cin >> column1 >> row1 >> column2 >> row2;

// вычисляем разности между столбцами и строками
int diffColumn = std::abs(column1 - column2);
int diffRow = std::abs(row1 - row2);

// проверяем, лежат ли клетки на одной диагонали
if (diffColumn == diffRow) {
std::cout << "YES" << std::endl;
} else {
std::cout << "NO" << std::endl;
}

return 0;
}
```

В данной программе мы используем переменные `column1`, `row1`, `column2`, `row2` для хранения номеров столбцов и строк исходной и конечной клеток. Затем мы считываем эти значения с помощью `std::cin >>`.

Далее мы вычисляем разности между столбцами (`diffColumn`) и строками (`diffRow`) с помощью функции `std::abs()`, чтобы получить модуль разности.

Затем мы сравниваем `diffColumn` и `diffRow`. Если они равны, то выводим "YES", иначе выводим "NO" с помощью `std::cout <<`.

Таким образом, программа определит, может ли слон попасть с одной клетки на другую одним ходом и выведет соответствующий ответ.

Надеюсь, это поможет вам понять решение этой задачи! Если у вас возникнут еще вопросы, не стесняйтесь задавать."
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика