На с++ с тернарной операцией
Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит восьми: первое число — номер вертикали (при счете слева направо), второе — номер горизонтали (при счете снизу вверх). Определите, являются ли поля (a,b) и (c,d) полями одного цвета.
Формат входных данных
Вводятся натуральные числа a, b, c и d (1≤a,b,c,d≤8).
Формат выходных данных
Требуется вывести «YES», если поля одного цвета, и «NO» в противном случае.
Примечания
Левое нижнее поле черного цвета.
Примеры
входные данные выходные данные
1 1 3 3
YES
2 2 4 5
NO
Answers & Comments
Verified answer
P.S.
Тернарная операция в C++ - это выражение вида (b ? x : y) (где b - логическое выражение, а x и y - одного типа). Она вернёт x, если выражение b истинно, и y, если b ложно.
Решение
В приложении расписаны координаты некоторых клеток, а также помечены точками те, которые по цвету отличаются от не помеченных. Если поискать, что у них общего, можно обнаружить, что у "невыколотых" клеток сумма координат по горизонтали и вертикали - чётная. Это "свойство" и используем для определения цвета клетки.
Код
#include <bits/stdc++.h>
using namespace std;
int main() {
int x1, y1, x2, y2;
cin >> x1 >> y1 >> x2 >> y2;
cout << ((x1 + y1) % 2 == (x2 + y2) % 2 ? "YES" : "NO") << endl;
return 0;
}