Advertisement
-Peer-

Сравнение цветов двух выбранных клеток шахматной доски.

Sep 20th, 2019
837
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.59 KB | None | 0 0
  1. /*
  2. Заданы две клетки шахматной доски. Если они покрашены в один цвет, то выведите слово «Yes!», а если в разные цвета – то «No!».
  3.  
  4. ЗАМЕЧАНИЕ. И горизонтали, и вертикали задаются порядковым номером.
  5. */
  6.  
  7. using System;
  8.  
  9. namespace ChessBoard {
  10.  
  11.     class Program {
  12.         static void Main() {
  13.             // считываем
  14.             int x1 = int.Parse(Console.ReadLine());
  15.             int y1 = int.Parse(Console.ReadLine());
  16.             int x2 = int.Parse(Console.ReadLine());
  17.             int y2 = int.Parse(Console.ReadLine());
  18.             // выводим
  19.             Console.WriteLine(((x1+y1+x2+y2) & 1) == 1 ? "No!" : "Yes!");
  20.         }
  21.     }
  22. }
  23.  
  24. /*
  25. Если присмотреться к доске, то можно заметить, что:
  26. • Для чёрных клеток чётность горизонтали и вертикали одинакова.
  27. • Для белых клеток чётность горизонтали и вертикали различна.
  28.  
  29. ========================================================================================================================
  30. Важное свойство чётности суммы:
  31.        Сумма двух чисел одинаковой чётности всегда чётна, сумма двух чисел различной чётности всегда нечётна
  32. ========================================================================================================================
  33.  
  34. Это значит, что:
  35. • Сумма номеров горизонтали и вертикали чёрной клетки всегда чётная.
  36. • Сумма номеров горизонтали и вертикали белой клетки всегда нечётная.
  37.  
  38. Из этого следует:
  39. • Сумма номеров горизонталей и вертикалей двух клеток ОДИНАКОВОГО цвета всегда чётная!
  40. • Сумма номеров горизонталей и вертикалей одной белой и одной чёрной клеток всегда нечётная! (чёрной или белой может быть любая из клеток).
  41.  
  42. Таким образом достаточно вычислить сумму заданных номеров горизонталей и вертикалей обеих клеток и определить её чётность.
  43. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement