Решение Python Задача «Шахматная доска»

Условие

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

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

Черные: 1 и 1, 3 и 5, 6 и 4.

Белые: 1 и 2, 3 и 4, 8 и 7.

Здесь наглядно видно что у чернух сумма координат дает четное число, а для белых дает не четное число. Итак, задача сводится к тому чтобы, проверить что оба числа четные или не четные или четность разная.

f_num_a = int(input())
f_num_b = int(input())

s_num_a = int(input())
s_num_b = int(input())

f_num = (f_num_a + f_num_b) % 2 # проверяем четность, если четное, то остаток 0, если не четное то остаток 1.
print(f_num)#это отладка для наглядности, его можно удалить, так как не входит в условия задачи

s_num = (s_num_a + s_num_b) % 2 #проверяем четность второй координаты
print(s_num)#это отладка для наглядности, его можно удалить, так как не входит в условия задачи

if f_num == s_num:
    print("YES")
else:
    print("NO")

Короткое решение

x1 = int(input())
y1 = int(input())
x2 = int(input())
y2 = int(input())

print("YES" if (x1 + y1) % 2 == (x2 + y2) % 2 else "NO")

Leave a Reply

Your email address will not be published. Required fields are marked *

*