Шахматное домино
Комплект шахматного домино состоит из 32 костяшек 2×1, каждый из квадратов которой окрашен в черный или белый цвет (часть костяшек состоит из двух белых квадратов, часть – из двух черных, а часть из одного белого и одного черного). Комплект такого домино выложен на шахматную доску. Разрешается поворачивать костяшки домино на 180 градусов (менять местами их квадраты), оставляя каждую костяшку на своем месте. Требуется выяснить, можно ли так повернуть часть костей домино, чтобы в каждом горизонтальном ряду были квадраты только одного цвета.
Входные данные
Вводится 8 строк по 8 чисел. Каждое число соответствует номеру доминошки, которая покрывает данную клетку. Число положительное, если квадрат доминошки белый и отрицательное — если черный.
Выходные данные
Требуется вывести одно слово – YES или NO (заглавными буквами).
Примеры
Ввод:
1 2 2 7 7 8 8 9
1 3 6 10 10 11 11 9
4 3 6 31 31 -24 23 -12
-4 -5 -5 30 -32 24 -23 12
28 29 29 -30 32 25 22 13
28 27 27 26 26 25 22 13
18 19 19 20 20 21 21 14
18 17 17 16 16 15 15 14
Вывод люди на любом из языков (Java,Python,C++)
Вот решение Python, но оно не правильное
import sys
MATRISA = []
for i in range(8):
MATRISA.append(list(map(int, input().split(
for i in range(7):
VAR1 = True
for j in range(7):
if MATRISA[i][j] // abs(MATRISA[i][j]) != MATRISA[i][j + 1] // abs(MATRISA[i][j + 1]):
VAR1 = False
if VAR1 == True:
continue
else:
for j in range(8):
if MATRISA[i][j] < 0:
t1 = MATRISA[i + 1][j]
t2 = MATRISA[i][j]
MATRISA[i][j] = t1
MATRISA[i + 1][j] = t2
VAR2 = True
for pop in range(7):
if MATRISA[i][pop] // abs(MATRISA[i][pop]) != MATRISA[i][pop + 1] // abs(MATRISA[i][pop + 1]):
VAR2 = False
if VAR2 == True:
break
else:
if j == 7:
print("NO")
sys.exit(0)
VAR3 = True
for j in range(7):
if MATRISA[7][j] // abs(MATRISA[7][j]) != MATRISA[7][j + 1] // abs(MATRISA[7][j + 1]):
mt2 = False
if VAR3 == True:
print("YES")
else:
print("NO")