Задача «Ферзи»

Условие

Известно, что на доске 8×8 можно расставить 8 ферзей так, чтобы они не били друг друга. Вам дана расстановка 8 ферзей на доске, определите, есть ли среди них пара бьющих друг друга.

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

Решение

  1. n = 8
  2. x = []
  3. y = []
  4. for i in range(n):
  5.     new_x, new_y = [int(s) for s in input().split()]
  6.     x.append(new_x)
  7.     y.append(new_y)
  8. correct = True
  9. for i in range(n):
  10.     for j in range(i + 1, n):
  11.         if x[i] == x[j] or y[i] == y[j] or abs(x[i] - x[j]) == abs(y[i] - y[j]):
  12.             correct = False
  13. if correct:
  14.     print('NO')
  15. else:
  16.     print('YES')