Как определить, покрашены ли две клетки шахмат в один цвет?
Помогите с решением задачки. Не пойму, где моя ошибка в логике. Вот задача:
Заданы две клетки шахматной доски. Если они покрашены в один цвет, то выведите слово YES, а если в разные цвета – то NO. Вводятся 4 числа - координаты клеток.
Вот мое решение:
x = int(input())
y = int(input())
x2 = int(input())
y2 = int(input())
if ((x + y) % 2 == 0) and ((x2 + y2) % 2 == 0):
print('YES')
else:
print('NO')
Ответы (3 шт):
Автор решения: CrazyElf
→ Ссылка
А если обе суммы координат наоборот нечётные? :) Тогда уж так:
if (x + y) % 2 == (x2 + y2) % 2:
Автор решения: TigerTV.ru
→ Ссылка
Можно так
if (x + y + x2 + y2) & 1:
print('NO')
else:
print('YES')
или так
coords = [int(input()) for _ in range(4)]
print("NO" if sum(coords) & 1 else "YES")
или все в одну строку
print(["YES", "NO"][sum(int(input()) for _ in range(4)) & 1])
или без for, с map
print(["YES", "NO"][1 & sum(map(int, map(input, ['']*4)))])